C/C++教程

typescript 学习笔记(一)

本文主要是介绍typescript 学习笔记(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

原始类型

js有五种基本类型 string、number、boolean、null、undefined,这几种类型typescript都赋予了对应的类型限定,如下

1、布尔值

  let bool: boolean = false

注意利用Boolean创造的对象不是布尔值:

let boolObject: boolean = new Boolean(1) //会报错

new Boolean创造的是一个对象并不是布尔值,

直接调用Boolean倒是可以

2、字符串

 str: string = 'hellow'
// 模板字符串
let sentence: string = `Hello, my name is ${myName}.
I'll be ${myAge + 1} years old next month.`;      

编译结果:

  var myName = 'Tom';
var myAge = 25;
// 模板字符串
var sentence = "Hello, my name is " + myName + ".\nI'll be " + (myAge + 1) + " years old next month.";      ```

4、数值

let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
// ES6 中的二进制表示法
let binaryLiteral: number = 0b1010;
// ES6 中的八进制表示法
let octalLiteral: number = 0o744;
let notANumber: number = NaN;
let infinityNumber: number = Infinity;     

编译结果:

var decLiteral = 6;
var hexLiteral = 0xf00d;
// ES6 中的二进制表示法
var binaryLiteral = 10;
// ES6 中的八进制表示法
var octalLiteral = 484;
var notANumber = NaN;
var infinityNumber = Infinity;      

其中 0b1010 和 0o744 是 ES6 中的二进制和八进制表示法,它们会被编译为十进制数字

4、null和undefined

null和undefined在typescript中分别是两个独立的类型限定

  let u: undefined = undefined;
  let n: null = null;     

5、空值void
void限定的变量只能赋值null或者undefined:

 let noContent: void = null;

与null和undefined限定不同的是,null和undefined是所有类型的子类型:

  let num: number = undefined; //这样没有问题
// 这样也不会报错
let u: undefined;
let num: number = u;

而void类型的变量不能互相随意传递:

  let noContent: void;
  let num: number = noContent; // 报错

任意类型 (any)

被指定为任意类型的变量可以被赋值任何类型,也能被调用任何属性方法,都不会报错:

let myFavoriteNumber: string = 'seven';
myFavoriteNumber = 7;

let anyThing: any = 'Tom';
anyThing.setName('Jerry');
anyThing.setName('Jerry').sayHello();
anyThing.myName.setFirstName('Cat');

注意:没有指定类型的变量,默认就是any类型

类型推论

当变量被赋值的时候没有被指定类型限定,会根据变量类型默认设置类型限定:

let myFavoriteNumber = 'seven';
myFavoriteNumber = 7;

// 等价于下边
let myFavoriteNumber: string = 'seven';
myFavoriteNumber = 7;

联合类型

表示取值为多种类型中的一个

let myFavoriteNumber: string | number;
myFavoriteNumber = 'seven';
myFavoriteNumber = 7;
// 只能赋值string或者number
myFavoriteNumber = true // 会报错

访问联合类型的属性和方法

联合类型的变量只能访问类型共有的属性和方法

function getLength(something: string | number): number {
   return something.length; // 会报错,字符串不含有length属性
 //想解决报错可以使用类型断言
 return <string>something.length // 这样就不会报错
}
// 联合类型当赋值为一个类型会推断赋值为那个类型
myFavoriteNumber = 'ss' // 变量被设定为字符串
myFavoriteNumber.slice(0) // ok
myFavoriteNumber = 5 // 变量被推断为number类型
myFavoriteNumber.slice(0) // 会报错

未完待续...

参考博客:https://www.jianshu.com/p/ced644f45764

这篇关于typescript 学习笔记(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!