[typescript] 타입 가드 함수의 활용 사례와 실무 적용 경험

타입스크립트(TypeScript)를 사용하면 정적 타입 시스템을 통해 코드 안정성을 높일 수 있습니다. 그 중에서도 타입 가드 함수를 활용하여 런타임 시점에서 발생할 수 있는 에러를 사전에 방지할 수 있습니다. 이번 포스트에서는 타입 가드 함수의 활용 사례와 실무에서의 적용 경험에 대해 살펴보겠습니다.

타입 가드 함수란?

타입 가드 함수는 입력된 값의 타입을 확인하고, 해당 값이 예상한 타입과 일치하는지를 검사하여 타입 안정성을 확보하는 함수입니다. 주로 유니온 타입이나 타입 가드 함수를 활용하여 세부적인 타입을 추론하는 경우에 사용됩니다.

활용 사례

1. instanceof 연산자를 활용한 타입 가드

class Animal {
  move() {
    console.log('Moving...');
  }
}

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

function isDog(pet: Animal): pet is Dog {
  return (pet as Dog).bark !== undefined;
}

function takeForAWalk(pet: Animal) {
  if (isDog(pet)) {
    pet.bark();
  } else {
    console.log('This is not a dog.');
  }
}

const myDog = new Dog();
takeForAWalk(myDog); // Output: Woof! Woof!

위 코드에서 isDog 함수는 petDog 타입인지를 판별하는 타입 가드 함수입니다.

2. typeof 연산자를 활용한 타입 가드

function isNumber(value: string | number): value is number {
  return typeof value === 'number';
}

function multiply(a: string | number, b: string | number) {
  if (isNumber(a) && isNumber(b)) {
    return a * b;
  } else {
    throw new Error('Both inputs should be numbers.');
  }
}

console.log(multiply(3, 4)); // Output: 12

위 코드에서 isNumber 함수는 입력된 값이 number 타입인지를 판별하는 타입 가드 함수입니다.

실무 적용 경험

저는 최근 프로젝트에서 타입 가드 함수를 활용하여 외부 API로부터 받아오는 데이터를 안전하게 다루는 데 활용했습니다. 이를 통해 API 응답 데이터의 타입을 정확하게 추론하고, 해당 타입에 맞게 안정적인 처리를 할 수 있었습니다.

이처럼 타입 가드 함수는 코드의 안정성을 높이고, 개발자가 의도하지 않은 런타임 에러를 사전에 방지하는 데 큰 도움을 줍니다.

결론

타입 가드 함수는 타입스크립트의 강력한 기능 중 하나로, 런타임 시점에서의 타입 안정성을 확보하는 데 사용됩니다. 다양한 활용 사례를 통해 실무에서도 적극적으로 활용할 수 있으며, 안정적인 코드를 작성하는 데 큰 도움이 됩니다.

타입 가드 함수를 적절히 활용하여 타입 안정성을 확보하고, 더욱 안정적이고 효율적인 코드를 작성하는 데 기여하길 바랍니다.


참고 문헌: 타입스크립트 핸드북 - 고급 타입