主题
联合类型和交叉类型
联合类型
联合类型表示取值可以为多种类型中的一种,使用 |
分隔每个类型
typescript
let myFavoriteNumber: string | number;
myFavoriteNumber = 'seven'; // OK
myFavoriteNumber = 7; // OK
交叉类型
把现有的多种类型合并成为一种类型,使用&
定义交叉类型
- 一类型可以合并,不同的类型没法合并,会被舍弃
typescript
type Useless = string & number // never,没有一个类型即时 string 也是 number
- 合并接口
typescript
type IntersectionType = { id: number; name: string; } & { age: number };
const mixed: IntersectionType = {
id: 1,
name: 'kingmusi',
age: 18
}