타입스크립트에서는 값의 부재를 표현하기 위해
자바스크립트에서의 null과 undefined,
추가로 void와 never 타입을 지원한다
null과 undefined는 각각 값 자체가 타입이 되는 특별한 타입이다
void와 never는 조금 더 정밀한 부재에 대한 표현이다
둘 다 함수의 반환 값에 대한 표현
구 버전의 타입스크립트에서 strictNullChecks 옵션을 false로 지정할 경우 null은 never를 제외한 모든 타입의 하위 타입이 된다
모든 타입은 null이 될 수 있으므로 모든 값이 null인지 먼저 확인해줘야 했다
예상치 않은 상황에서 null이 발생할 경우 치명적인 null 포인터 에러가 발생한다
null을 발명한 사람은 null을 수억달러 짜리 실수 라고 부른다
많은 언어가 각자의 타입 시스템에서 null 문제를 해결하기 위해 노력한다
타입스크립트는 이를 올바르게 처리하는 좋은 예를 보여준다
컴파일 타임에 가능한 많은 버그를 검출하는 것