28-1. 유효한 상태와 무효한 상태를 둘 다 표현
28-2. 유효한 상태만 표현
declare 키워드란?Pick Omit 제네릭이란?29-1. 매개변수 타입(사용)은 넓은 범위, 반환 타입(생성)은 좁은 범위여야 한다.
30-1. 주석에 타입 정보를 적지 않는다.
@param 구문 사용하기readonly 사용하기30-2. 변수명에 타입 정보를 넣지 않는다.
31-1. 한 값의 null 여부가 다른 값의 null 여부와 암시적 연관이 있으면 안된다.
31-2. API 작성 시에는 반환 타입이 null 이거나 null 이 아니도록 만들기
null과 null이 아닌 값을 섞어서 사용하는 것을 피하기null 이거나 null 이 아니도록 만들기31-3. 클래스 생성 시 필요한 값이 준비되었을 때 생성하여 null 이 존재하지 않도록 하기
32-1. 인터페이스의 유니온 사용하기
32-2. 타입에 태그 넣기
undefined인 경우에도 태그된 유니온이 유리하다