타입 가드는 넓은 값을 검증해 안전한 사용 범위로 좁힌다
unknown이나 union은 바로 고유 멤버에 접근할 수 없고, 조건문을 통과할 때마다 더 구체적인 타입이 된다.
Wide input
unknown 또는 union 값 수신
Guard
typeof, instanceof, in, equality 검사
Narrowed branch
조건 블록 안에서 더 구체적인 타입
Safe use
좁힌 뒤에만 고유 속성과 메서드 사용
Custom guard
반복 조건은 value is T 함수로 분리
| 점검 | 기준 |
|---|---|
| 타입 단언 | 검증 없이 컴파일러만 설득 |
| 타입 가드 | 런타임 조건으로 값의 형태를 증명 |
| 판단 | 외부 값은 가드로 증명한 뒤 사용 |
핵심 좁히기는 타입 단언의 대체재다. 조건문으로 값을 증명해야 이후 코드가 안전해진다.