백엔드/Node.js

[TS] 타입가드(Type Guard)란?

SparkIT 2025. 4. 9. 21:05

타입가드(Type Guard)란?

여러 타입이 존재할 수 있을 때 내가 원하는 타입만 조건문으로 걸러내기 위한 타입 좁히기(narrowing)를 의미

function print(value: string | number) {
  if (typeof value === 'string') {
    // 여기서 value는 string으로 좁혀짐
    console.log(value.toUpperCase());
  } else {
    // 여기선 number
    console.log(value.toFixed(2));
  }
}

 

 

사용자 정의(커스텀) 타입 가드

아래와 같은 방식으로 많이 사용하기도 한다.

function isString(val: any): val is string {
  return typeof val === 'string';
}