TS高级 - 联合类型
专题简介
联合类型(Union Types)表示取值可以为多种类型中的一种。
ts
let user: string | number;
user = 123; // 编译OK
user = 'abc'; // 编译OK
user = true; // 编译报错:不能将类型“boolean”分配给类型“string | number”。
如果一个值是联合类型,我们只能访问此联合类型的所有类型里共有的成员。
ts
interface Bird {
fly();
layEggs(); // 共有成员
}
interface Fish {
swim();
layEggs(); // 共有成员
}
function getSmallPet(): Fish | Bird {
// ...
}
let pet = getSmallPet();
pet.layEggs(); // okay
pet.swim(); // errors
注意区分
联合类型 与 交叉类型。