[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