[typescript] 타입 가드 함수 작성 방법

TypeScript에서 타입 가드 함수를 사용하는 방법에 대해 알아보겠습니다.

타입 가드란?

타입 가드(type guard) 는 런타임에서 특정 타입의 변수를 다룰 때 타입을 보장하는 함수입니다. 일반적으로 조건문과 타입 어서션을 사용하여 타입을 확인하고 제약을 걸어 안전한 타입 변환을 보장합니다.

예를 들어, 다음과 같은 코드에서 typeof 연산자를 사용하여 타입을 확인하는 함수를 타입 가드 함수라고 할 수 있습니다.

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

위의 isNumber 함수는 value의 타입이 number인지를 확인하여 boolean 값을 반환합니다. 이를 활용하여 런타임에서 안전하게 타입을 다룰 수 있습니다.

타입 가드 함수 작성 방법

타입 가드 함수를 작성하는 방법은 다음과 같습니다.

  1. 함수 시그니처: 인자로 받는 값의 타입과 반환하는 값의 타입을 명시합니다.
  2. 타입 가드 구현: 반환이 value is 타입 형태인 조건을 만족하도록 타입 가드를 구현합니다.
function isNumber(value: any): value is number {
  return typeof value === 'number';
}

위와 같이 value is number 형태로 반환 타입을 지정하면 해당 함수가 타입 가드 함수임을 TypeScript에 알리게 됩니다.

타입 가드 함수 활용

이제 위에서 작성한 타입 가드 함수를 활용하여 안전한 타입 변환을 보장하는 예제를 살펴봅시다.

function multiplyByTen(value: any) {
  if (isNumber(value)) {
    return value * 10; // 여기서 value는 자동으로 `number`로 타입이 유추됩니다.
  }
  return "Not a number";
}

multiplyByTen 함수 내에서 isNumber 함수의 결과에 따라 코드 블록이 실행되며, 해당 블록 내에서는 value의 타입이 자동으로 number로 타입 추론됩니다.

이렇게 타입 가드 함수를 활용하면 런타임 에러를 방지하고 안전한 코드를 작성할 수 있습니다.

TypeScript에서 타입 가드 함수를 작성하고 활용하여 코드 안전성을 높이는 방법에 대해 알아보았습니다.

참고 자료