[typescript] 타입 가드의 효율적인 사용 방법

타입스크립트(TypeScript)에서 타입 가드(Type Guards)는 특정 조건을 만족하는 변수의 타입을 좁힐 수 있는 강력한 도구입니다. 이러한 타입 가드를 효율적으로 활용하는 방법을 알아보겠습니다.

1. 타입스크립트의 타입 가드란?

타입 가드는 특정 조건에 따라 변수의 타입을 좁히는 역할을 합니다. 이를 통해 런타임 시 타입 안전성을 보장하고 코드의 가독성을 높일 수 있습니다. 주로 typeof, instanceof, in 연산자를 이용하여 타입 가드를 구현합니다.

1.1. typeof를 이용한 타입 가드

function printValue(value: string | number) {
  if (typeof value === 'string') {
    console.log(value.toUpperCase());
  } else {
    console.log(value.toFixed(2));
  }
}

1.2. instanceof를 이용한 타입 가드

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

class Dog extends Animal {
  woof() {
    console.log('Woof!');
  }
}

class Cat extends Animal {
  meow() {
    console.log('Meow!');
  }
}

function petSound(animal: Dog | Cat) {
  if (animal instanceof Dog) {
    animal.woof();
  } else {
    animal.meow();
  }
}

2. 타입 가드의 효과적인 활용 방법

2.1. 유니온 타입에서의 타입 가드 활용

interface Bird {
  fly(): void;
}

interface Fish {
  swim(): void;
}

function move(animal: Bird | Fish) {
  if ('fly' in animal) {
    animal.fly();
  } else {
    animal.swim();
  }
}

2.2. 사용자 정의 타입 가드

function isString(value: any): value is string {
  return typeof value === 'string';
}

function processValue(value: any) {
  if (isString(value)) {
    console.log(value.toUpperCase());
  } else {
    console.log(value.toFixed(2));
  }
}

결론

타입 가드는 타입스크립트 코드를 더욱 안전하고 가독성 있게 만드는 강력한 도구입니다. typeof, instanceof, in 연산자를 적절히 활용하거나 사용자 정의 타입 가드를 만들어서 코드를 더욱 효율적으로 작성할 수 있습니다.

참고 자료: TypeScript 공식 문서

이상으로 타입 가드의 효율적인 활용 방법에 대해 알아보았습니다. 감사합니다!


위 포스트는 타입스크립트에서 타입 가드를 효율적으로 사용하는 방법에 대해 다루고 있습니다. 각각의 타입 가드 예시를 들어가며 쉽고 명확하게 설명한 것이 인상적입니다. 이 포스트를 통해 타입 가드에 대한 이해를 높일 수 있을 것입니다.