TypeScript的类型

109 阅读3分钟

记就完事了!!!!

基本类型

number string boolean

字面量类型

let a: 值; 声明是哪个值就是哪个值不能再修改了!!!(类似常量的概念,限制性)

联合类型

“|” 表示或的意思 let a: 值 | 值 ,使用 “|” 来连接多个类型

any任意类型

可以随意赋值;一个变量设置any类型后,相当于对该变量关闭了TS的类型检测,使用Ts时,不建议使用any类型。(显式的any)

let 变量 不指定类型默认any类型。(隐式的any)

any类型的值可以赋值给任意变量,会导致别的变量类型发生改变!!

unknown类型(未知类型)

并不是每个值的类型都是确定的。(实际上就是一个类型安全的any,)

unknown类型的变量不能直接赋值给其它变量,因为unknown不会关闭类型检测,类型和类型比较,所以报错。

类型断言 可以用来告诉编译器变量的实际类型

语法: 变量 as 类型 || <类型>变量

void类型

空值(undefined) 以函数为例,表示没有返回值

never类型

没有值 ,不能是任何值, 以函数为例,表示永远不会返回结果。(一般用做报错处理 new Error('报错'))

object类型

表示一个js对象,直接声明好对象中可以包含的属性, 语法: let obj: {属性名:属性值|类型,属性名:属性值|类型};

属性名后加?表示此属性是可选属性,覆值时没有这个属性不报错,如果不加,且没有这个属性则报错。

let c :{ name: string , [propName:string]:any} ; 表示声明卫个c对象,必须有name这个属性,还可以加任意类型的属性。

语法 :[属性名:属性名的类型]:any 表示可以加任意类型的属性 。

let d : (a:number , b: number) => number;表示声明了一个d函数,有a 和 b 两个类型为number的参数,且返回值的类型也是number。

语法:(形参:类型,形参2:类型...) => 类型 ,用类似箭头函数的方式来声明函数类型

array类型

语法:类型[] , Array<类型> 声明数组时,尽量把类型明确。

例:let e: string[] 表示声明了一个字符串数组(所有值都必须是字符串类型)

tuple 元组类型

固定长度的数组,

let h : [string,string]; 表示定议元组,有两个值,两个值都是string类型。

enum 枚举类型

对一些在数据类型中不能直接表达类型的描述,一种标识符

语法:enum 枚举名{标识符:值 ,标识符 :值}

补充

“|” 表示或的意思, “&” 表示且、同时 ;

let j : {name : string } & { age : number}; 表示变量j,既要有name属性还有要有age属性。 & 用来连接两个对象。

类型的别名: 语法:type myType = sting; type 自己起的类型名 = 需要定义的类型。 let k : 1 | 2 | 3 | 4 | 5 ;需要重复声明同种类型的变量,可以使用类型别名。避免重复声明,代码冗余。