TS入门(二)
数据类型
(1)布尔值(boolean )
1 | let isDone: boolean = false; |
在 TypeScript 中,boolean 是 JavaScript 中的基本类型,而 Boolean 是 JavaScript 中的构造函数
数值(number )
(2)模板字符串:
1 | let sentence: string = `Hello, my name is ${myName}. I'll be ${myAge + 1} years old next month.` |
编译结果:
1 | var sentence = "Hello, my name is " + myName + ".\nI'll be " + (myAge + 1) + " years old next month."; |
其中 ` 用来定义 ES6 中的模板字符串,${expr} 用来在模板字符串中嵌入表达式。
(3)空值(Void ):
JavaScript 没有空值(Void)的概念,在 TypeScript 中,可以用 void 表示没有任何返回值的函数:
声明一个 void 类型的变量没有什么用,因为你只能将它赋值为 undefined 和 null:
1 | let unusable: void = undefined; |
- Null 和 Undefined:
undefined 类型的变量只能被赋值为 undefined,null 类型的变量只能被赋值为 null。
(4)任意值(Any)
- 来表示允许赋值为任意类型
任意类型的理解:(如果是一个普通类型,在赋值过程中改变类型是不被允许的,但如果是 any 类型,则允许被赋值为任意类型。声明一个变量为任意值之后,对它的任何操作,返回的内容的类型都是任意值。—-变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型)
类型推论(如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成 any 类型而完全不被类型检查:)
(5)联合类型
表示取值可以为多种类型中的一种。
1
2
3 let myFavoriteNumber: string | number;
myFavoriteNumber = 'seven';
myFavoriteNumber = 7
联合类型使用 | 分隔每个类型。
(6)对象的类型——接口
- 接口
在面向对象语言中,接口(Interfaces)是一个很重要的概念,它是对行为的抽象,而具体如何行动需要由类(classes)去实现(implements)。
(7)函数的类型
声明语句1
2
3function sum(x: number, y: number): number {
return x + y;
}1
declare var jQuery: (selector: string) => any;
(declare 定义的类型只会用于编译时的检查,编译结果中会被删除。)
上例的编译结果是:1
jQuery('#foo');