TypeScript

    Item 7. 타입이 값들의 집합이라고 생각하기

    이번 아이템을 읽으면서 가장 충격적이였던 코드. 타입 PersonSpan은 Person과 Lifespan의 교집합이 아니라 합집합이다. 지금 생각해보면 당연할 수 있는데 처음에 보자마자 당연하게 교집합이라고 생각했다. interface Person { name: string; } interface Lifespan { birth: Date; death?: Date; } type PersonSpan = Person & Lifespan; const ps: PersonSpan = { name: 'Alan Turing', birth: new Date('1912/06/23'), death: new Date('1954/06/07'), }; // OK 왜냐하면 위에서 type연산자는 속성이 아닌 값의 집합에 적용되기 ..

    Item 4. 구조적 타이핑에 익숙해지기

    자바스크립트는 덕 타이핑 기반이다. 클래스도 구조적 타이핑 규칙을 따른다. 구조적 타이핑을 사용하면 유닛 테스트를 수월하게 할 수 있다. 덕 타이핑(Duck Typing)? 참고 구조적 타이핑(Structural Typing)? TypeScript의 타입 호환성은 구조적 서브 타이핑(subtyping)을 기반으로 합니다. 구조적 타이핑이란 오직 멤버만으로 타입을 관계시키는 방식입니다. TypeScript의 구조적 타입 시스템의 기본 규칙은 y가 최소한 x와 동일한 멤버를 가지고 있다면 x와 y는 호환된다는 것입니다. 예를 들어: interface Named { name: string; } let x: Named; // y의 추론된 타입은 { name: string; location: string; } 입..