28. 유효한 상태만 표현하는 타입을 지향하기

28-1. 유효한 상태와 무효한 상태를 둘 다 표현

28-2. 유효한 상태만 표현

29. 사용할 때는 너그럽게, 생성할 때는 엄격하게

29-1. 매개변수 타입(사용)은 넓은 범위, 반환 타입(생성)은 좁은 범위여야 한다.

30. 문서에 타입 정보를 쓰지 않기

30-1. 주석에 타입 정보를 적지 않는다.

30-2. 변수명에 타입 정보를 넣지 않는다.

31. 타입 주변에 null값 배치하기

31-1. 한 값의 null 여부가 다른 값의 null 여부와 암시적 연관이 있으면 안된다.

31-2. API 작성 시에는 반환 타입이 null 이거나 null 이 아니도록 만들기

31-3. 클래스 생성 시 필요한 값이 준비되었을 때 생성하여 null 이 존재하지 않도록 하기

32. 유니온의 인터페이스보다는 인터페이스의 유니온을 사용하기

32-1. 인터페이스의 유니온 사용하기

32-2. 타입에 태그 넣기

33. string 타입보다 더 구체적인 타입 사용하기