타입 단언

TypeScript에서 개발자가 컴파일러보다 특정 값의 타입을 더 잘 알고 있음을 알려주는 문법입니다.

핵심 특징

기본 문법

const element = document.getElementById("app") as HTMLDivElement;

element.style.backgroundColor = "blue";

document.getElementById()의 반환 타입은 HTMLElement | null입니다. 개발자가 해당 요소가 HTMLDivElement임을 확신할 때 as HTMLDivElement로 단언할 수 있습니다.

타입 단언이 필요한 경우

타입 단언은 컴파일러의 타입 추론이 실제 코드의 의도를 충분히 표현하지 못할 때 사용합니다.

type Fish = { swim: () => void };
type Bird = { fly: () => void };

function isFish(pet: Fish | Bird) {
  return (pet as Fish).swim !== undefined;
}

다만 가능한 경우에는 타입 단언보다 타입 가드나 조건문을 이용해 타입을 좁히는 편이 더 안전합니다.

타입 단언 vs 타입 가드

항목타입 단언타입 가드
방식개발자가 타입을 주장조건문으로 타입을 검증
런타임 검사없음가능
안정성낮을 수 있음상대적으로 높음
사용 예DOM 요소 캐스팅union 타입 분기

주의사항

핵심 정리

타입 단언은 컴파일러에게 “이 값은 이 타입으로 봐도 된다”고 알려주는 문법입니다.

편리하지만 런타임 검증은 하지 않으므로, 확실한 근거가 있을 때 최소 범위에서 사용하는 것이 좋습니다.

→ 타입 단언이란 무엇이며 언제 사용하나요

CSLOG에서 보기