← Back to NOTES 🌰 ← Back to Effective TypeScript

← 아이템 30 - 문서에 타입 정보를 쓰지 않기

핵심 요약

한 값의 null 여부가 다른 값의 null 여부에 암시적으로 관련되도록 설계하면 안 된다. API 작성 시에는 반환 타입을 큰 객체로 만들고, 반환 타입 전체가 null이거나 null이 아니게 만들어야 한다. 클래스를 만들 때는 필요한 모든 값이 준비되었을 때 생성하여 null이 존재하지 않도록 하는 것이 좋다.

자세한 내용

strictNullChecks 설정

strictNullChecks는 null이나 undefined에 대한 엄격한 검사를 수행한다. 이 설정을 켜면 코드에 많은 오류가 표시되지만, null 값과 관련된 문제점을 찾아낼 수 있기 때문에 반드시 필요하다.

null 값 섞어 사용의 문제

각각의 변수가 서로 연관되어 있고, 값이 섞여 있다면 이러한 관계들은 겉으로 드러나지 않으므로 사람과 타입 체커 모두에게 혼란스럽다.

값이 전부 null이거나 전부 null이 아닌 경우로 분명하게 구분된다면, 값이 섞여 있을 때보다 다루기 쉽다.

extent 함수의 문제점

버그와 설계적 결함

개선 방법

min과 max를 한 객체 안에 넣고 null이거나 null이 아니게 만든다. 이는 null 값을 타입의 경계로 두는 방법이다.

클래스에서의 문제