[typescript] 타입 가드 함수 사용 예시

타입스크립트(TypeScript)에서 타입 가드 함수를 사용하여 유연하고 안전한 코드를 작성할 수 있습니다. 타입 가드 함수는 특정 타입이나 속성을 검증하고 나머지 코드 블록에서 해당 타입을 안전하게 사용할 수 있도록 도와줍니다.

다음은 instanceof 키워드를 사용한 타입 가드 함수의 예시입니다.

class Animal {
  name: string;
  constructor(name: string) {
    this.name = name;
  }
}

class Dog extends Animal {
  breed: string;
  constructor(name: string, breed: string) {
    super(name);
    this.breed = breed;
  }
}

class Cat extends Animal {
  color: string;
  constructor(name: string, color: string) {
    super(name);
    this.color = color;
  }
}

function isDog(animal: Animal): animal is Dog {
  return animal instanceof Dog;
}

function getAnimalDescription(animal: Animal) {
  if (isDog(animal)) {
    console.log(`${animal.name} is a ${animal.breed} breed`);
  } else {
    console.log(`${animal.name} is a cat with ${animal.color} color`);
  }
}

const dog = new Dog('Buddy', 'Golden Retriever');
const cat = new Cat('Whiskers', 'Gray');

getAnimalDescription(dog); // Output: Buddy is a Golden Retriever breed
getAnimalDescription(cat); // Output: Whiskers is a cat with Gray color

위 예시에서 isDog 함수는 animalDog인지 아닌지를 확인하여 해당 타입을 확실하게 반환하도록 도와줍니다. 이를 통해 코드 실행 중에 발생할 수 있는 타입 에러를 사전에 방지할 수 있습니다.

이러한 타입 가드 함수를 통해 코드의 가독성과 안정성을 향상시킬 수 있습니다.

더 자세한 내용은 타입 가드 함수(Type Guard) 에 대한 타입스크립트 공식 문서를 참고하세요.