TS에는 null
또는 undefined
값을 처리하는 강력한 시스템이 있다.
기본적으로 null
및 undefined
처리는 비활성화되어 있으며 strictNullChecks
를 true로 설정하여 활성화할 수 있다.
이 페이지의 나머지 부분은 strictNullChecks
가 활성화된 경우에 적용된다.
null
및 undefined
는 기본 유형이며 string
과 같은 다른 유형처럼 사용할 수 있습니다.
strictNullChecks
가 활성화되면 undefined
값이 타입에 명시적으로 추가되지 않는 한 TS에서 값을 설정해야 한다.
Optional Chaining은 TS의 null 처리와 잘 작동하는 JS 기능이다. 이를 통해 간결한 구문을 사용하여 존재하거나 존재하지 않을 수 있는 객체의 속성에 액세스할 수 있다. 속성에 액세스할 때 연산자?
와 함께 사용할 수 있다.
Nullish Coalescence는 TS의 null 처리와도 잘 작동하는 또 다른 JS 기능이다. null
또는 undefined
를 처리할 때 특히 fallback이 있는 표현식을 작성할 수 있다. 이는 표현식에서 다른 거짓 값이 발생할 수 있지만 여전히 유효한 경우에 유용다. &&
연산자를 사용하는 것과 유사하게 ??
와 함께 사용할 수 있다.
TS의 추론 시스템은 완벽하지 않다. null
또는 undefined
값의 가능성을 무시하는 것이 합리적일 때가 있다. 이를 수행하는 쉬운 방법은 캐스팅을 사용하는 것이지만, TS는 편리한 단축키로 !
연산자도 제공한다.
캐스팅과 마찬가지로 이건 안전하지 않을 수 있으므로 주의해서 사용해야 한다.
strictNullChecks
가 활성화된 경우에도 기본적으로 TS는 배열 액세스가 undefined를 반환하지 않는다고 가정한다(undefined가 배열 타입의 일부인 경우 제외).
구성 noUncheckedIndexedAccess
를 사용하여 이 동작을 변경할 수 있다.