캐스팅 방법
- 아래의 예제 코드와 같이
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
로 캐스팅해버리는 것은 나쁜 예시가 될 수 있음
반응형
'Typescript' 카테고리의 다른 글
TS008. Typescript Intersection 이란? (0) | 2023.12.28 |
---|---|
TS007. 타입스크립트 Union 이란? (0) | 2023.12.28 |
TS005. 타입스크립트의 타입 추론 (type inference) (0) | 2023.12.27 |
TS004. 타입스크립트의 Enum 타입 간단하게 알아보기 (0) | 2023.12.27 |
TS003. 타입과 인터페이스 (0) | 2023.12.27 |