[typescript] 타입 가드의 활용 예시

타입스크립트(TypeScript)에는 타입 가드를 사용하여 실행 시점에 타입을 안전하게 검사할 수 있는 유용한 기능이 있다. 타입 가드를 활용하여 더 안정적인 코드를 작성할 수 있다. 이번 포스트에서는 몇 가지 타입 가드의 활용 예시를 살펴보겠다.

1. typeof를 활용한 타입 가드

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

위 예시에서, typeof를 사용하여 해당 변수의 타입을 체크함으로써 printValue 함수 내에서 안전하게 작업을 수행할 수 있다.

2. instanceof를 활용한 타입 가드

class Car {
  drive() {
    console.log('Driving a car...');
  }
}

class Bicycle {
  ride() {
    console.log('Riding a bicycle...');
  }
}

function move(vehicle: Car | Bicycle) {
  if (vehicle instanceof Car) {
    vehicle.drive();
  } else {
    vehicle.ride();
  }
}

위 코드에서, instanceof를 사용하여 객체가 특정 클래스의 인스턴스인지를 체크하여 해당 객체에 안전하게 접근할 수 있다.

3. 사용자 정의 타입 가드

interface Bird {
  fly(): void;
}

interface Fish {
  swim(): void;
}

function isBird(pet: Bird | Fish): pet is Bird {
  return (pet as Bird).fly !== undefined;
}

function movePet(pet: Bird | Fish) {
  if (isBird(pet)) {
    pet.fly();
  } else {
    pet.swim();
  }
}

위 코드에서, pet is Bird는 사용자가 직접 정의한 타입 가드로, 해당 함수를 사용하여 타입스크립트가 유형을 올바르게 추론할 수 있도록 도와준다.


타입 가드를 적절히 활용하면 런타임 시 안전한 타입 검사를 수행할 수 있고, 타입 안정성을 높일 수 있다. 위 예시를 참고하여 프로젝트에서 타입 가드를 활용하여 더 안전하고 유연한 코드를 작성해보자.