[Typescript] 기본 타입의 타입 캐스팅

정혜인·2023년 8월 14일

typescript

목록 보기
13/15

🔥 Unknown 타입

: 타입 계층도의 최상단에 위치, 모든 타입의 값 할당 가능
( 모든 타입은 unknown 타입으로 업캐스팅 가능 )

🔥 never 타입

: 타입 계층도의 가장 아래에 위치, 공집합을 뜻하는 타입
( 모든 타입으로 업캐스팅 가능, 어떤 타입도 never 타입으로 다운캐스팅 불가능)

+never 타입은 아래 코드처럼 함수가 정상적으로 종료되지 않는 경우 (에러를 처리하는 경우)에 사용된다.

function errorFunc(): never {
  throw new Error();
}

🔥 void 타입

: 아무것도 반환하지 않는 함수의 반환값 타입으로 사용
✍️ undefined, never 타입의 값만 할당 가능

let voidVar: void;

voidVar = undefined; // undefined -> void (ok)

let neverVar: never;
voidVar = neverVar; // never -> void (ok)

🔥 any 타입

: 치트키, 타입 계층도를 완전히 무시한다.
( 모든 타입의 슈퍼타입이 될 수도, 모든 타입의 서브타입이 될 수도 있다 )

모든 타입으로 다운 캐스팅 할 수 있고, 모든 타입은 any 타입으로 업캐스팅 될 수 있다.

최대한 사용하지 않도록 하자!!

let anyValue: any;

let num: number = anyValue;   // any -> number (다운 캐스트)
let str: string = anyValue;   // any -> string (다운 캐스트)
let bool: boolean = anyValue; // any -> boolean (다운 캐스트)

anyValue = num;  // number -> any (업 캐스트)
anyValue = str;  // string -> any (업 캐스트)
anyValue = bool; // boolean -> any (업 캐스트)

0개의 댓글