변수에 여러 타입이 반복되어 대입되거나 복잡한 연산에 의하여 변수에 값이 대입될때 타입 추론이 불가한 경우가 있다.
타입 단언은 as 키워드를 사용하여 타입을 강제 정의하는것을 말한다.
타입 단언은 DOM API를 조작할때 가장 많이 사용된다.
var temp; // any
temp = 20; // any
temp = 'a'; // any
var b = temp; // any
var b = temp as string; // string
// <div id="app">hi</div>
const div = document.querySelector('div'); // HTMLDivElement | null
if(div){
div.innerHTML = 'asdf';
}
div는 null일 수 도 있기 때문에 바로 innerHTML 속성에 접근시 오류가 발생되므로, if문을 거쳐 innerHTML에 접근해야한다.
const div = document.querySelector('div') as HTMLElement;
div.innerHTML = 'asdf';
위와 같이 타입 단언을 사용하면 if문을 거치지 않고 바로 속성을 사용할 수 있다.