모든 집합의 서브타입 (공집합) */ 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; "> 모든 집합의 서브타입 (공집합) */ 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; "> 모든 집합의 서브타입 (공집합) */ 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; ">

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

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;
}