basic
感叹号是非 null 和非 undefined 的类型断言
const fn = (arr: Array<number>): number[] => {};const fn = (arr: number[]): number[] => {};
范型数组
可选参数必须位于必选参数之后
对象字面量在直接赋值的时候,编译器会检查字面量类型是否完全匹配,多一个或少一个属性都会报错
在ES6中,实例属性和静态属性不能直接定义在类内部
class Greeter { constructor(){ // 正确,ES6中实例属性只能定义在构造器内部 this.greeting = 'world'; }}// 正确,ES6中静态属性只能定义在类外部Greeter.greeting = 'world';
TS
class Greeter { // 定义实例属性并初始化 greeting: string = 'world';
// 定义静态属性并初始化 static greeting: string = 'world';}
类成员包括:
- 实例属性
- 静态属性
- 实例方法
- 静态方法
- 构造函数
- getter/setter
可以使用 readonly
关键字将属性设置为只读的。 只读属性必须在声明时或构造函数里被初始化
as 断言
type 别名 = 类型 ;
别名不会创建一个新的类型,它只是原类型的一个引用,和原类型完全等价,
类型断言用来明确告诉编译器一个值的类型,相当于类型转换,断言有两种语法格式:
// 1、尖括号语法<类型表达式>值 在左边
// 2、as语法值 as 类型表达式
(<Circle>circle).showColor()
尖括号 <> 的运算符优先级低于点号 . ,因而必须用括号将断言表达式扩起来