联合类型

联合类型(Union Types)表示取值可以为多种类型中的一种。

  1. let myFavoriteNumber: string | number;
  2. myFavoriteNumber = "seven";
  3. myFavoriteNumber = 7;
  4. myFavoriteNumber = true; // error TS2322: Type 'boolean' is not assignable to type 'string | number'.

交叉类型(Intersection Types)表示将多个类型合并为一个类型

interface A {
  a: string;
}
interface B {
  b: number;
}

// 此时 ab 同时具有 A 和 B 中定义的所有类型
const ab: A & B = {
  a: "hello",
  b: 13
};