ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (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 타입에 다운캐스팅 하는 것은 불가능하다.

    반응형
Designed by Tistory.