Narrowing

타입 가드별 좁히기 흐름도

union이나 unknown 값은 런타임 검사를 통과할 때마다 더 구체적인 타입으로 좁혀진다.

불확실한 값을 안전하게 쓰는 순서

type guards

넓은 입력

unknown이나 union은 바로 멤버에 접근할 수 없다.

기본 가드

typeof, instanceof, in으로 가능한 분기를 나눈다.

동등성 검사

리터럴 값 비교로 특정 케이스를 더 좁힌다.

사용자 가드

반복되는 조건은 value is T 함수로 캡슐화한다.

unknown/unionguardbranchnarrow typesafe use
값 증명

타입 좁히기는 타입 단언의 대체재다. 컴파일러가 이해할 수 있는 조건문으로 값을 증명해야 이후 코드가 안전해진다.