굳이 우리말로 번역하자면 '타입 단언'이라는 뜻으로 개발자가 특정 값에 대해 특정 타입일 것임을 확신하는 경우
const myCanvas = document.getElementById("main_canvas") as HTMLCanvasElement;
이렇게 as를 붙여서 타입을 단언할 수 있다. 위의 코드는 아래와 같이 쓸 수도 있다.
const myCanvas = <HTMLCanvasElement>document.getElementById("main_canvas");
!.tsx 파일에서는 제외
(개인적으로 전자가 이해하기 직관적인 것 같다)
하지만 Type assertion도 무조건 할 수 있는 게 아니고 좀더 specific 하거나 덜 speicific한 타입으로만 단언할 수 있다. 예를 들어
const x = "hello" as number;
이렇게 얼토당토않은 단언을 하면 에러를 뿜는다.
만약 이런 규칙이 너무 보수적이라고 느껴지거나, 실제 코딩을 하다가 문제가 생긴다면
const a = (expr as any) as T;
const a = (expr as unknown) as T;
이런 식으로 변경해서 사용하면 된다.