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 |