Type assertion

차분한열정·2021년 7월 4일
0

타입스크립트 정리

목록 보기
8/15

굳이 우리말로 번역하자면 '타입 단언'이라는 뜻으로 개발자가 특정 값에 대해 특정 타입일 것임을 확신하는 경우

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;

이런 식으로 변경해서 사용하면 된다.

profile
성장의 기쁨

0개의 댓글

관련 채용 정보