타입 가드(Type Guard)가 무엇인가요?

0

기술면접 - TS

목록 보기
18/18

타입 가드(Type Guard)가 무엇인가요?

타입 가드(Type Guard)는 TypeScript에서 변수의 타입을 좁히는 방법으로, 런타임에서 변수의 타입을 검사하여 타입 추론을 개선하는 메커니즘입니다. 타입 가드를 사용하면 특정 조건이 충족될 때 변수의 타입을 좁혀서 더 구체적인 타입으로 사용할 수 있습니다.

타입 가드는 다음과 같은 방법으로 구현할 수 있습니다:

1. 타입 체크:
특정 조건을 사용하여 변수의 타입을 확인하는 방법입니다. typeof, instanceof, in 등의 연산자를 사용하여 변수의 타입을 체크할 수 있습니다.

function printLength(value: string | number) {
  if (typeof value === 'string') {
    console.log(value.length); // value의 타입이 string인 경우에만 접근 가능
  }
}

2. 사용자 정의 타입 가드:
사용자 정의 함수를 통해 변수의 타입을 체크하는 방법입니다. 함수의 반환 타입에 value is Type 형태를 사용하여 해당 조건이 충족될 때 true를 반환하도록 합니다.

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

function printLength(value: string | number) {
  if (isString(value)) {
    console.log(value.length); // value의 타입이 string인 경우에만 접근 가능
  }
}

타입 가드를 사용하면 타입 추론이 개선되어 변수의 타입이 더욱 구체화되고, 이에 따라 IDE에서 해당 타입에 대한 지원과 자동완성 등의 장점을 누릴 수 있습니다. 또한 코드의 안전성과 가독성을 향상시킬 수 있습니다. 타입 가드는 TypeScript의 강력한 기능 중 하나이며, 다양한 상황에서 유용하게 활용될 수 있습니다.

profile
지치지 않는 백엔드 개발자 김성주입니다 :)

0개의 댓글