TypeScript 문법으로 as
를 사용해서 다운 캐스팅을 할 수 있다.
다운 캐스팅은 파생된 타입의 값을 부분 타입 형태로 사용하는 방법이다.
const value = rand();
const str = value as number;
console.log(str * 10);
function rand(): string | number {
if (Math.random() < 0.5) {
return 'hello';
} else {
return 123;
}
이러한 방법은 안전한 방법은 아니다.
이유는 value
가 string
일 수 있기 때문이다. 변수 str에 문자열을 대입할 가능성도 있다.
as를 다운 캐스팅 할 경우 전혀 관계 없는 값을 변환시키는 것은 불가능 하다.
as를 사용해서 형변환 할 수는 있지만 조금 위험부담이 있기 때문에 정말 부득이하게 사용해야할 경우가 아니라면 다른 방법을 사용하는 것이 좋다. (안티패턴)