캐스팅 방법
- 아래의 예제 코드와 같이
as 타입 으로 캐스팅 가능
let someNumber = 3;
someNumber as any;
const twoNumbers = [1, 3] as const;
주의점
- 타입스크립트는 언제나 자바스크립트로 컴파일 된다는 점이 중요
- 캐스팅하면 타입스크립트에서 인식되는 타입은 바뀌지만 자바스크립트에서는 그대로임
- 이 부분 때문에 자바스크립트와 타입스크립트 간의 타입 괴리가 생길 수 있음
- 아래 코드의 경우,
string 으로 캐스팅을 해도 출력시 number 가 나옴
let anyNumber: any = 3;
console.log(typeof (anyNumber as string)); // 결과로 number 가 나옴
any 로 캐스팅하는 경우 주의점
- 초보의 경우 타입 설정이 자꾸 안먹혀서 짜증나서
any 로 모든 것을 캐스팅해버리는 경우 존재
- 그럴 경우 기존에 타입 추론을 통해 제공받던 에러의 정보까지 제공받지 못하는 경우가 생김
let four = 4;
console.log(four.toUpperCase()); // 에러 발생
console.log((four as any).toUpperCase()); // 에러가 발생하지 않음. any 로 캐스팅을 해버리면, 원래 에러를 내던 기능을 잃어버림
모범 사례 캐스팅
- 상속에서 더 구체적인 값으로 캐스팅할 때가
as 로 캐스팅하는 좋은 예시가 될 수 있음
any 로 캐스팅해버리는 것은 나쁜 예시가 될 수 있음