홍열 2022. 2. 16. 15:51
728x90

타입스크립트의 타입 체계를 이해하는데 도움이 된다.

타입스크립트는 Structual Type System을 따른다.

Structual Type System


구조가 같으면 같은 타입이다. 

interface IPerson {
    name:string;
    age:number;
    speak():string;
};

type PersonType = {
    name:string;
    age:number;
    speak():string
};

let personInterface : IPerson = {} as any;
let personType : PersonType = {} as any;

// 같은 구조니까 대입 가능
personInterface = personType
personType = personInterface

 

Nominal Type System


구조가 같아도 이름이 다르면,  다른 타입니다. (C, java 등등..)

 

 

Duck Typing


만약 어떤 새가 오리 처럼 걷고, 헤엄치고, 꽥꽥거리는 소리는 낸다면 나는 그 새를 오리라고 부를 것이다. (python)

structual typesystem과 유사한 방식