unknown vs any
guard first둘 다 어떤 값이든 받을 수 있지만 unknown은 검사 전 사용을 막는다.
unknown: 좁힌 뒤 속성 접근
any: 검사 없이 통과되어 오류를 숨김
unknown, object, void, never, null, undefined는 값의 모양보다 사용 가능한 범위와 실행 흐름을 설명할 때 힘을 발휘한다.
둘 다 어떤 값이든 받을 수 있지만 unknown은 검사 전 사용을 막는다.
object는 원시 타입이 아님만 말한다. 구체 속성이 필요하면 구조를 직접 적는다.
void는 함수가 끝까지 오지만 값이 없고, never는 끝까지 도달하지 않는다.
strictNullChecks에서는 비어 있을 수 있는 값을 유니온으로 분명히 표시한다.