typescript 类型注意事项
类型
声明类型string表示字符串,而String表示String对象
null undefined 是所有类型的子类型
任意值
声明一个变量为任意值any之后,对它的任何操作,返回的内容的类型都是任意值
变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型
如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成 any 类型而完全不被类型检查
给变量设置默认值且不设置类型,会触发类型推论
联合类型
当 TypeScript 不确定一个联合类型的变量到底是哪个类型的时候,我们只能访问此联合类型的所有类型里共有的属性或方法
接口
赋值的时候,变量的形状必须和接口的形状保持一致
可选属性?
任意属性[propName: string]: any
数组
数组的项中不允许出现其他的类型 any[]
函数的类型
在 TypeScript 的类型定义中,=> 用来表示函数的定义,左边是输入类型,需要用括号括起来,右边是输出类型。
let mySum: (x: number, y: number) => number = function (x: number, y: number): number {
return x + y;
};
可选参数 ?表示,可选参数后面不允许再出现必须参数了
function buildName(firstName: string, lastName?: string) {}
参数默认值 TypeScript 会将添加了默认值的参数识别为可选参数, 且不受可选参数后面不允许再出现必须参数了的限制
剩余参数 ...rest 为一个数组,可以声明
function push(array: any[], ...items: any[]) {}
类型断言
类型断言的用法,在需要断言的变量前加上
类型断言不是类型转换,断言成一个联合类型中不存在的类型是不允许的