2019-09-17 发表2020-12-03 更新 周浪 6 分钟读完 (大约876个字)
TypeScript基础类型.md 基础类型
number(数字)number
包含整数和小数。可以有二级制
,八进制
,十进制
,十六进制
表示法。
1 2 3 4 let num: number = 6 ; let num: number = 0xf00d ; let num: number = 0b1010 ; let num: number = 0o744
string(字符串)string
类型使用"
,'
,(`)
表示。
1 2 3 let str: string = "string" ;let str: string = 'string' ;let str: string = `string${foo} ` ;
boolean(布尔)boolean
的值只有 true
和 false
。
1 2 3 4 let checked: boolean = true ;let checked: boolean = false ;let checked: boolean = Boolean (true );let checked: boolean = Boolean (false );
array(数组)array
类型在ts
中有两种表示方法。类型定义一种使用数据类型[]
,另一种使用Array<数据类型>
。 如果需要在一个数组中有多种不同类型的可以结合联合类型
定义。
1 2 let arr:number [] = [1 ,2 ,3 ,4 ];let arr:Array <number > = [1 ,2 ,3 ,4 ]
tuple(元组)tuple
类型是ts
中新增的。表示一个已知元素数量 和类型 的数组
。并且值需要和类型的顺序保存一致。 ⚡️:元组
和数组
之间的区别在于: 元组更严格,元素的数量
,类型
, 顺序
,都需要保持一致。
1 2 3 4 5 let t:[string , number ] = ["abc" , 1 ];let t:[string , number ] = [1 , "abc" ]; let t:[string , number ] = ["1bc" , 1 , 2 ];
enum(枚举)enum
类型也是ts
中新增的。使用枚举类型可以为一组数值赋予友好的名字。 表示一个可以通过key
取到value
,也可以通过value
取到key
的对象。
1 2 3 4 5 6 7 8 9 10 11 const Colors = { RED, BLUE, YELLOW } const c: Colors = Colors.RED; const c: Colors = Colors.BLUE; const c: string = Colors[0 ];
anyany
类型表示变量可以是任意类型。ts
不会去对这个变量做类型检测。
1 2 3 4 5 let foo: any = 4 ;foo = 'string' ; foo = true ; let arr: any [] = [1 ,'a' , true ];
voidvoid
表示没有任何类型。它的值只能是 undefined
或null
。
1 2 3 4 5 6 function fn ( ):void { console .log(1 ); } let foo: void = null ;let foo: void = undefined ;
null和undefinednull
和undefined
是其他所有类型的子类型。 ⚡️:null
值和undefined
值可以赋给其他任何类型。当设置strictNullChecks
的时候,只能赋给它们自己和void
。
1 2 let u:undefined = undefined ;let n: null = null ;
nevernever
表示永远不存在的值的类型,常用于抛出错误
,死循环
, 返回error()
的函数,
1 2 3 4 5 6 7 8 9 10 11 function err ( ):never { throw new Error () } function fail ( ):never { return error('error' ) } function fn ( ):never { while (true ){} }
1 2 3 4 5 6 7 8 9 let obj:object = { number : 12 } obj.number = 13 ; let obj:{x :number , y :string } = { x : 1 , y : 'abc' }obj.x = 2 ;
联合类型 对一些值可以是多种类型的变量,需要使用联合类型。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 let foo: number | string | boolean ;foo = 123 ; foo = 'abc' ; foo = false ; function fn (value: string | number ):void { } fn(1 ); fn('abc' ); let arr:(number |string )[] = [1 ,'string' ];let arr: Array <number |string |boolean >;arr = [1 , 1 , boolean , 'abc' ];
类型别名 类型别名是给一组或一个类型起一个名称。他只是引用了别的类型,本身不会创建一个类型。
1 2 3 4 type TypeName = number | string | boolean ;let foo: TypeName = 123 ;let foo: TypeName = 'abc' ;let foo: boolean = false ;
类型断言 当一个变量可以是多个类型的时候。你已经明确知道这个变量的值是某一种类型,使用这个类型上的某个方法的时候,可能会引发ts
报错。
1 2 3 4 let str1: string | number = "123" ;let len: number = (str1 as string ).length; let len: number = (<string >str1).length
You need to set install_url
to use ShareThis. Please set it in _config.yml
.