[typescript] 타입 가드 함수의 타입 추론과 주의사항

타입스크립트에서 타입 가드 함수는 다양한 타입의 값을 구별하고 추론하는 데 사용됩니다. 타입 가드 함수를 사용할 때 타입 추론과 주의사항에 대해 알아둘 필요가 있습니다.

타입 가드 함수

타입 가드 함수는 주로 typeof, instanceof, 또는 커스텀 타입 가드 함수와 같은 방법을 사용하여 특정 조건을 만족할 때 해당 값의 타입을 좁히는 역할을 합니다. 예를 들어, 다음과 같은 타입 가드 함수를 작성할 수 있습니다.

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

위의 isNumber 함수는 주어진 값이 숫자인지 여부를 판별하고, 그에 따라 value is number 형태로 타입을 좁힙니다.

타입 추론

타입 가드 함수를 사용하면 해당 조건이 충족될 때 TypeScript가 값을 해당 타입으로 추론할 수 있습니다. 예를 들어, 다음과 같이 사용될 수 있습니다.

function multiplyIfNumber(value: any, multiplier: number): any {
  if (isNumber(value)) {
    return value * multiplier; // value의 타입이 number로 추론됨
  }
  return 'Not a number';
}

위의 예제에서, isNumber 함수를 통해 value의 타입이 number로 추론되며, 해당 조건이 충족되지 않을 때는 타입을 좁히지 않는 점에 유의해야 합니다.

주의사항

주의해야 할 점은 타입 가드 함수가 항상 완벽하게 동작하지는 않는다는 것입니다. 타입 가드 함수가 값의 타입을 조금씩 제한할 수 있지만, 모든 조건을 커버할 수 없을 수도 있습니다. 또한 타입 가드 함수가 복잡할 경우 TypeScript가 타입을 올바르게 추론하지 못할 수도 있습니다.

요약

타입 가드 함수는 TypeScript의 타입 추론을 돕는 유용한 도구이지만, 항상 완벽하게 동작하지는 않습니다. 타입 가드 함수를 사용할 때는 그 동작 방식과 주의해야 할 부분을 잘 이해하고 활용해야 합니다.

이상으로 타입 가드 함수의 타입 추론과 주의사항에 대해 알아보았습니다.

더 자세한 정보는 TypeScript 공식 문서를 참고하시기 바랍니다.