[typescript] 유니온 타입을 사용하여 타입 가드를 활용하는 방법은 무엇인가요?
예를 들어, 다음과 같이 유니온 타입을 사용하여 타입 가드를 활용할 수 있습니다.
type Fish = { swim: () => void };
type Bird = { fly: () => void };
function move(animal: Fish | Bird) {
if ("swim" in animal) {
// animal이 Fish 타입일 때의 로직
animal.swim();
} else {
// animal이 Bird 타입일 때의 로직
animal.fly();
}
}
위 예제에서 move
함수는 Fish
와 Bird
타입을 갖는 animal
매개변수를 받습니다. 이후 if ("swim" in animal)
을 통해 해당 객체가 Fish
타입인지 검사하고, 이에 따라 다른 로직을 수행하도록 구현되어 있습니다.
이와 같이 유니온 타입과 타입 가드를 활용하여, 다양한 타입을 안전하게 다루고 처리할 수 있습니다.
참고 자료:
- TypeScript 공식 문서: https://www.typescriptlang.org/docs/handbook/2/narrowing
- Mozilla Developer Network: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in