类型工具
联合
T1 | T2 | ...
只能访问所有类型公共的属性和方法。
交叉
T1 & T2 & ...
最终类型为所有类型合并后的属性和方法。
别名
使用 type
给已有类型起个新名字。
type NewType = ...
接口
给对象类型起个新名字。
ts
interface Point {
x: number;
y: number;
}
区别 | interface | type |
---|---|---|
继承 | extends | 交叉 |
扩展 | 允许重复声明 | 不支持 |
原始类型 | 不支持 | 支持 |
错误信息 | 保持名称 | 替换为等价类型 |
断言
强制更改类型。
xxx as xxx
xxx as const
:转为字面量!
:非空断言,把null
、undefined
部分去掉
只允许断言为不同层级的类型,如果想断言为同级类型,可以用 any
中转一下。