unknown과 null 경계

특수 타입 안전성 구분

특수 타입은 예외적인 문법이 아니라 값의 불확실성, 반환 흐름, 값 없음의 의미를 분리하기 위한 장치입니다.

unknown

확인 전 사용 금지

외부 입력처럼 타입을 모르는 값은 검사 뒤에야 메서드와 속성 접근 범위가 열린다.

typeof value
object

원시값 제외 객체

객체임은 알지만 구체 속성은 모를 때 쓰며 속성 접근에는 추가 타입이 필요합니다.

Record<string, unknown>
void와 never

반환 없음과 불가능

void는 반환값을 쓰지 않는 함수, never는 정상 종료 자체가 없는 흐름입니다.

throw new Error()
null 경계

strictNullChecks

null과 undefined를 별도 값으로 다루면 누락된 상태를 더 정확히 처리합니다.

value ?? fallback
외부 입력 JSON, URL, 폼 데이터는 unknown에서 시작해 타입 가드로 좁힙니다.
함수 반환 콜백처럼 반환값을 무시할 함수에는 void가 자연스럽습니다.
옵션 설정 strictNullChecks를 켜면 값 없음 처리가 코드에 드러납니다.

특수 타입은 애매함을 숨기기보다 애매한 지점을 표시하고 안전하게 좁혀 가도록 돕습니다.