런타임에 사용하는 연산자인 typeof, instanceof, in, literal type, custom type guard 을 이용하면, 컴파일 타임에 인식을 합니다.
Type Guard 를 사용하면 조건문 블록 스코프 내에서 타입을 좁힐 수 있습니다. ⇒ 아주 굿
결과는 문자열로 다음의 값을 가질 수 있다.
(typeof null 은 'object')
TypeScript는 JavaScript 인스턴스 및 운영자 유형을 알고 있습니다. 이러한 변수를 조건 블록에서 사용하는 경우 TypeScript는 해당 조건 블록 내에서 서로 다른 변수의 유형을 이해합니다. 다음은 TypeScript에서 특정 기능이 문자열에 존재하지 않음을 깨닫고 사용자 오타가 될 수 있는 항목을 보여 주는 간단한 예입니다.
function getNumber(value: number | string): number {
value;
if (typeof value === 'number') {
value;
return value;
}
value;
return -1;
}