记就完事了!!!!
基本类型
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 ;需要重复声明同种类型的变量,可以使用类型别名。避免重复声明,代码冗余。