联合类型和类型保护
- 联合类型: 允许一个变量具有多种不同的类型。
- 类型保护: 是一种在运行时检查变量类型的方法,以确保对变量的安全使用。
interface Bird {
fly: boolean;
sing: () => {}
}
interface Dog {
fly: boolean;
bark: () => {}
}
function Animal(animal: Bird | Dog):void {
if(animal.fly) {
// 类型断言
(animal as Bird).sing();
} else {
(animal as Dog).bark();
}
}