6. 편집기를 사용하여 타입 시스템 탐색하기

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

7-1. 타입은 할당 가능한 값들의 집합이다.

참고 - https://joshua1988.github.io/ts/guide/operator.html#union-type을-쓸-때-주의할-점

7-2. keyof

keyof (A&B) 는
(keyof A) | (keyof B) 와 같다

keyof (A|B) 는
(keyof A) & (keyof B) 와 같다

8. 타입 공간과 값 공간의 심벌 구분하기

8-1. 타입스크립트 플레이그라운드 활용하기

8-2. classenum

8-3. typeof

8-4. 타입의 속성을 얻을 때에는 속성 접근자 [] 사용하기

8-5. 구조 분해 할당

9. 타입 단언보다는 타입 선언을 사용하기

interface Person {
	name: string
};

9-1. 타입 선언과 타입 단언

9-2. 화살표 함수

const people = ['a', 'b', 'c'].map(name => ({name}));

// { name: string; }[] 으로 추론됨

→ 화살표 함수의 반환 타입 선언

const people = ['a', 'b', 'c'].map(
	(name): Person => ({name})
);

// Person[] 으로 추론됨

10. 객체 래퍼 타입 피하기

10-1. 기본형과 객체 래퍼 타입

10-2. 기본형 타입을 사용하자

11. 잉여 속성 체크의 한계 인지하기

11-1. 잉여 속성 체크

11-2. 잉여 속성 체크의 적용범위

11-3. 공통 속성 체크

12. 함수 표현식에 타입 적용하기

12-1. 함수 표현식 사용하기

12-2. 같은 타입 시그니처를 반복적으로 작성했다면 함수 타입을 분리하기

13. 타입과 인터페이스의 차이점 알기

13-1. 유사점

13-2. 차이점

항목 type interface
유니온 O X
선언 병합 (속성 확장) X O

13-3. 어떨 때 type, 어떨 때 interface를 써야 할까?

14. 타입 연산과 제네릭 사용으로 반복 줄이기