联合类型是玩转类型的基础,用 |
表示,即是又是的意思。有时候我们希望一个变量既可以是字符串又可以是number,除了泛型之外,联合类型是很好的处理方式。
经常使用场景,属性初始值允许是null类型和自有类型。
定义联合类型
如下面例子,age可以是number 也可以是string ,初始值位null
let age:string | number | null = null
age = 3
age = ‘4’
function setAge(age:string | number | null ) {
age?.toString()
console.log(age);
}
setAge(age)
联合类型可以访问所有类型的成员如:
interface Bird {
fly();
layEggs();
}
interface Fish {
swim();
layEggs();
}
function getSmallPet(): Fish | Bird {
// …
}
let pet = getSmallPet();
pet.layEggs(); // okay
pet.swim(); // errors