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[]) {}

类型断言

类型断言的用法,在需要断言的变量前加上 即可。

类型断言不是类型转换,断言成一个联合类型中不存在的类型是不允许的