-
(TypeScript) - 타입 계층 구조로 기본 타입 정리개발/TypeScript 2025. 8. 20. 10:40반응형
■ TypeScript 타입 계층 구조

TypeScript 계층 구조는 다음과 같다.
이러한 계층 구조를 살펴보면 어떤 식으로 변수에 할당해야 하는지를 보다 쉽게 이해 가능하다.
■ 타입 계층도로 기본 타입 알아보기
- unknown 타입
unknown 타입은 최상단에 위치하며,
모든 타입의 슈퍼타입이며 전체 집합이라 할 수 있다.
function unknownExam() { let a: unknown = 1; let b: unknown = 'hello'; let c: unknown = true; let d: unknown = null; let e: unknown = undefined; let unKnownVar: unknown; let num: number = unKnownVar; //불가능 let str: string = unKnownVar; //불가능 let bool: boolean = unKnownVar; //불가능 }따라서 다른 타입으로 정의된 변수에 할당이 불가하다.
- never 타입
never 타입은 계층도를 보면 가장 최하단에 위치하며,
모든 타입의 서브타입이며 부분 집합이라 할 수 있다.
즉, 모든 집합의 부분 집합이 되는 공집합과 동일하다.
/** * Never 타입 */ function neverExam() { function neverFunc(): never { while (true) {} } let num: number = neverFunc(); let str: string = neverFunc(); let bool: boolean = neverFunc(); }따라서 모든 타입 변수에 해당 never 은 가장 최하위 계층,
모든 집합의 부분 집합이므로 업캐스팅은 모든 것에서 가능하므로 가능하다.
let never1: never = 10;반대로 이렇게 never 변수 안에 숫자 number 는 다운캐스팅 되는 것이므로 불가능하다.
따라서 never 타입은 아무런 값도 저장할 수 없는 변수로 활용할 때 좋다.
- void 타입
/** * void 타입 * */ function voidExam() { function voidFunc(): void { console.log('hi'); } let voidVar: void = undefined; }void 는 undefined 의 상위 타입이므로 이를 담을 수 있다.
- any 타입
/** * any 타입(치트키) : 계층도 무시 * */ function anyExam() { let unKnownVar: unknown; let anyVar: any; let undefinedVar: undefined; let neverVar: never; anyVar = unKnownVar; //가능 undefinedVar = anyVar; //가능 neverVar = anyVar; //불가능 }any 타입은 치트키로서 모두 가능한데,
유일하게 never 타입에 다운캐스팅 하는 것은 불가능하다.
반응형'개발 > TypeScript' 카테고리의 다른 글
(TypeScript) - TypeScript 대수 타입 (0) 2025.08.20 (TypeScript) - 객체 타입 호환성 (0) 2025.08.20 (TypeScript) - 타입은 집합이다 (슈퍼타입, 서브타입, 업캐스팅, 다운캐스팅) (0) 2025.08.19 (TypeScript) - TypeScript void 와 never 타입 (0) 2025.08.19 (TypeScript) - Any 타입과 Unknown 타입 (0) 2025.08.19