类型声明
类型声明是TS
非常重要的一个特点。
通过类型声明可以指定TS
中变量(参数、形参)的类型。
指定类型后,当为变量赋值时,TS
编译器会自动检查是否复核类型声明,复核则赋值,否则报错。
简而言之,类型声明给变量设置了类型,使得变量只能存储某种类型的值。
语法:
1 2 3 4 5 6 7 let 变量: 类型;let 变量: 类型 = 值;function fn (参数: 类型, 参数: 类型 ): 类型 { ... }
基本类型 1、字符串: string
1 let str:string = 'hello word'
2、布尔值: boolean
1 let isShow:boolean = true
3、数字: number
4、数组: array
1 let list: number [] = [1 , 2 , 3 ];
5、元组: tuple
元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同, 对应位置的类型需要相同。
1 2 3 4 5 let arr: [string , number ];arr = ["aaa" , 12 ]; arr = [12 , "222" ];
6、枚举: enum
对JavaScript
标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 enum weeks { Mon, Tue, Wed, } let day: weeks = weeks.Mon;console .log(day); console .log(weeks[0 ]); console .log(weeks["Mon" ]);
7、any
any
, 为不清楚类型的变量指定一个类型, 不通过类型检查器检测。
1 2 3 4 5 let x: any = "aaa" ;x = 12 ; x = false ;
8、void
void
类型像是与any
类型相反,表示没有任何类型。当一个函数没有返回值时,其返回值类型通常是 void
。
1 2 3 4 5 function hello ( ): void { console .log("11111" ); }
声明一个void类型的变量没有什么大用,因为你只能为它赋予undefined
和null
1 let unusable: void = undefined ;
9、undefined
null
10、object
1 let obj: object = { a : "1" };
联合类型 1 2 3 4 5 let x2: number | string | boolean ;x2 = 2 ; x2 = "22" ;
类型推论
类型断言 1 2 3 4 5 let x5: number | string | boolean = "this is a string" ;let strLen: number = (<string >x5).length;let strLen1: number = (x5 as string ).length;
*注:可凭个人喜好用以上方法,但当你在TypeScript
里使用JSX
时,只有as
语法断言是被允许的。