TypeScript 타입 좁히기 분기
유니온 값은 런타임 검사를 통과한 분기 안에서 더 구체적인 타입이 되고, 해당 타입의 멤버만 안전하게 사용할 수 있습니다.
typeof id === "string"
id는 string으로 좁혀지므로 toUpperCase()를 호출할 수 있습니다.
else → number
string 가능성이 제거되어 id는 number가 되고 toFixed()를 호출할 수 있습니다.
분기 밖
두 경로가 다시 만나면 선언된 string | number 범위로 돌아가 공통 동작만 허용됩니다.
핵심typeof, instanceof, in, 사용자 정의 타입 가드는 런타임 사실을 제어 흐름 분석에 전달합니다.