본문 바로가기
언어/TypeScript

Type Assertion (as 사용법)

by seacode 2025. 4. 16.

Type Assertion

타 언어의 타입 캐스팅이라고 봐도 되는데, 좀 더 포괄적이다.

사용법

const myCanvas = document.getElementById("main_canvas") as HTMLCanvasElement;
  • 컴파일 단계에서 타입 검사를 할 때, 타입 스크립트가 감지하지 못하는 애매한 타입 요소들을 직접 명시해주는 키워드. (런타임 단계에서는 as가 삭제된다)
  • 만약 as 가 없다면, 타입스크립트는 myCanvas 가 여러개의 HTMLElement 중 어느 하나를 가진다고 대충만 알게 된다.
  • 이렇게만 보면 대체 왜 쓰는건지 감이 잘 안 온다.

why?

  • 컴파일러보다 개발자가 해당 타입을 확신할 때.
  • JS 기반 코드에다가 점진적으로 TS 를 적용할 때.
interface Hero {
  name: string;
  age: number;
}

const capt: Hero = {}; // X. 오류 발생
capt.name = '캡틴';
capt.age = 100;

capt 변수가 정의되는 시점에 Hero의 속성이 정의되지 않았으므로 에러가 발생한다.

물론 const capt: Hero = { name: ‘capt’, age: 100 }; 이렇게 바로 초기화를 해줄 수도 있지만,

const capt = {} as Hero; // 오류 없음

이렇게 바로 as 키워드를 쓰면 된다.

'언어 > TypeScript' 카테고리의 다른 글

spread operator  (0) 2025.04.30
타입 가드  (0) 2025.04.17
type vs interface  (0) 2025.04.16
타입 호환성  (0) 2025.04.15
타입 추론  (0) 2025.04.15