Skip to content

联合类型和交叉类型

联合类型

联合类型表示取值可以为多种类型中的一种,使用 | 分隔每个类型

typescript
let myFavoriteNumber: string | number;
myFavoriteNumber = 'seven'; // OK
myFavoriteNumber = 7; // OK

交叉类型

把现有的多种类型合并成为一种类型,使用&定义交叉类型

  1. 一类型可以合并,不同的类型没法合并,会被舍弃
typescript
type Useless = string & number // never,没有一个类型即时 string 也是 number
  1. 合并接口
typescript
  type IntersectionType = { id: number; name: string; } & { age: number };
  const mixed: IntersectionType = {
    id: 1,
    name: 'kingmusi',
    age: 18
  }