타입을 직접 지정을 해서 오타를 방지하고 쉽게 사용할 수 있다.
interface Bird {
type: 'bird';
flyingSpeed: number;
}
interface Horse {
type: 'horse';
runningSpeed: number;
}
type Animal = Bird | Horse;
function moveAnimal(animal: Animal) {
let speed;
switch (animal.type) {
case "bird":
speed = animal.flyingSpeed;
break;
case "horse":
speed = animal.runningSpeed;
break;
default:
break;
}
console.log('Moving with spped: ' + speed);
}
moveAnimal({ type: 'bird', flyingSpeed: 1000 });