[typescript] 타입 가드 함수의 장점과 활용성

타입스크립트에서 타입 가드 함수는 유연하고 안정적인 코드를 작성하는 데 도움을 줍니다. 타입 가드 함수는 특정 타입이나 속성을 가진지 확인하고, 이를 활용하여 코드를 보다 안전하게 작성할 수 있도록 도와줍니다.

타입 가드 함수란?

타입 가드는 런타임에서 변수의 타입을 확인하는 방법을 제공하는 함수입니다. 타입 가드 함수를 사용하면 코드 내에서 특정 타입에 대한 여러 가지 검사와 확인을 수행할 수 있습니다.

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

위의 예시에서 isNumber 함수는 value가 숫자인지를 확인하여 boolean 값을 반환합니다.

타입 가드 함수의 장점

안정성

타입 가드 함수를 사용하면 코드의 안정성이 향상됩니다. 컴파일 시점에서 타입이 보장되므로 런타임 에러를 사전에 방지할 수 있습니다.

가독성

타입 가드 함수를 사용하면 코드의 가독성이 좋아집니다. 타입 검사를 별도의 함수로 분리함으로써 코드가 간결하고 이해하기 쉬워집니다.

유지보수성

타입 가드 함수를 사용하면 유지보수성이 향상됩니다. 타입 검사 로직이 중복되는 것을 방지하고, 코드를 보다 쉽게 수정하고 확장할 수 있습니다.

타입 가드 함수의 활용

타입 가드를 활용한 타입 추론

타입 가드 함수를 사용하면 해당 변수의 타입을 명시하지 않아도 타입 추론을 통해 타입을 유추할 수 있습니다.

function multiplyOrConcat(a: string | number, b: string | number) {
  if (isNumber(a) && isNumber(b)) {
    return a * b; // a와 b가 숫자일 때는 숫자 타입으로 추론
  } else {
    return a.toString() + b.toString(); // 그 외에는 문자열 타입으로 추론
  }
}

사용자 정의 타입 가드

사용자 정의 타입 가드를 통해 특정 조건을 만족하는지를 확인하여 타입을 추론할 수 있습니다.

function isCar(vehicle: Car | Bicycle): vehicle is Car {
  return (vehicle as Car).drive !== undefined;
}

위의 예시에서 isCar 함수는 vehicle이 자동차인지 확인하여 해당 타입으로 추론합니다.

결론

타입 가드 함수는 타입스크립트에서 안정적이고 유연한 코드를 작성하는 데 있어 매우 유용한 도구입니다. 타입 가드 함수를 적절히 활용하여 코드의 안정성과 가독성을 향상시키고, 유지보수성을 높일 수 있습니다.

더 많은 정보는 타입 가드 함수 (TypeScript 공식 문서)를 참고하세요.