Item 22 타입 좁히기

Narrowing

타입 좁히기(Narrowing)란 타입스크립트가 넓은 타입으로부터 좁은 타입으로 진행하는 과정을 말한다.

타입스크립트에서 타입을 좁히는 방법:

  • null 체크

    • 일반적으로 타입 체커는 null 체크에서 타입 좁히기를 잘 해내지만, 타입 별칭이 존재하면 그러지 못할 수 있다. 타입 별칭은 Item 24 일관성 있는 별칭 사용하기에서 다룬다.

  • 예외 던지기 / 함수 반환하기

  • instanceof

  • 속성 체크

  • Array.isArray 같은 일부 내장 함수

  • 명시적 '태그' 붙이기 - Item 3 코드 생성과 타입이 관계없음을 이해하기

    • type 속성을 추가한다.

    • 태그된 유니온(tagged union) 또는 구별된 유니온(discriminated union)

  • 사용자 정의 타입 가드(type guard)

Summary

  • 분기문(if-else, switch)외에도 여러 종류의 제어 흐름을 살펴보며 타입스크립트가 타입을 좁히는 과정을 이해하자.

  • 태그된/구별된 유니온과 사용자 정의 타입 가드를 사용하여 타입 좁히기 과정을 원할하게 만들 수 있다.

Last updated