타입 가드는 런타임 검사를 타입 정보로 바꾼다
유니온 타입은 조건문을 지나며 블록마다 더 구체적인 타입으로 좁혀진다. 그래서 검사 이후에는 해당 타입에만 있는 멤버를 안전하게 사용할 수 있다.
핵심 효과
검사 전에는 공통 멤버만, 검사 후에는 좁혀진 타입의 멤버까지 사용할 수 있다.
입력 변수
id: string | number아직 실제 값이 문자열인지 숫자인지 확정되지 않았다.
타입 가드
typeof id === "string"
참이면 `id`는 `string`으로 좁혀진다.
else
`string` 가능성이 제거되어 남은 타입은 `number`다.
사용자 정의 가드
user is AdminUser처럼
타입 사실을 전달한다.
블록 안에서 가능한 일
string block
id.toUpperCase() 사용
가능
number block
id.toFixed(2) 사용 가능
after branch
분기 밖에서는 선언된 범위의 타입으로 다시 합쳐진다.