타입 계층도와 함께 기본타입 살펴보기 - 타입스크립트 이해하기

Untitled

Untitled

**/**
 * 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; (x)
}

**/** 
 * Never 타입 -> 모든 집합의 서브타입 (공집합)
 */**

function neverExam(){
    function neverFunc(): never{
        while (true) {}
    }

    // 이건 업캐스팅이라 모든 타입에 해당 never 타입 넣을 수 있다.
    let num: number = neverFunc();
    let str: string = neverFunc();
    let bool: boolean = neverFunc();

    // let never1: never = 10; // 다운캐스팅이라 안됨
}

**/**
 * Void 타입
 */**

function voidExam(){
    function voidFunc(): void{
        console.log("hi");
    }

    // 업캐스팅이라 가능
    let voidVarL: void = undefined; 
}

**/**
 * any 타입 (치트키)
 */**

function anyExam(){
    let unknownVar: unknown;
    let anyVar:any;
    let undefinedVar: undefined;
    let neverVar: never;

    // 이건 any타입 한정임 (다운캐스팅 가능)
    anyVar = unknownVar;   
    undefinedVar = anyVar
    
    // 하지만 이건 안됨
    // neverVar = anyVar;
}