[typescript] 다중 타입을 활용하여 타입 검증을 수행하는 방법을 알려주세요.
다중 타입을 활용하여 타입 검증을 수행하는 방법은 TypeScript에서 매우 유용하게 활용될 수 있습니다. 예를 들어, 여러 가지 타입을 받아들이고 그에 따라 다른 동작을 수행하는 함수를 작성해야 할 때 유용하게 활용됩니다.
아래는 다중 타입을 이용한 타입 검증 예제입니다.
type Cat = {
name: string;
purrSound: string;
};
type Dog = {
name: string;
barkSound: string;
};
function makeSound(pet: Cat | Dog) {
if ("purrSound" in pet) {
console.log(`${pet.name} is purring: ${pet.purrSound}`);
} else {
console.log(`${pet.name} is barking: ${pet.barkSound}`);
}
}
const kitty: Cat = { name: "Kitty", purrSound: "Purr" };
const doggy: Dog = { name: "Doggy", barkSound: "Woof" };
makeSound(kitty); // 출력: Kitty is purring: Purr
makeSound(doggy); // 출력: Doggy is barking: Woof
위 예제에서 makeSound
함수는 Cat
또는 Dog
타입을 받아들일 수 있도록 정의되었습니다. 함수 내부에서는 if ("purrSound" in pet)
를 사용하여 해당 프로퍼티가 있는지 여부로 타입을 검증하고 다른 동작을 수행하게 됩니다.
이러한 방식으로, TypeScript에서는 다중 타입을 활용하여 간단하면서도 강력한 타입 검증을 수행할 수 있습니다.
개발자가 유용하게 활용할 수 있는 TypeScript의 공식 문서에서 더 자세한 정보를 확인할 수 있습니다: TypeScript 공식 문서 - Advanced Types