리액트에서 타입스크립트를 사용하다보면, 정말 많이 보게되는 에러가:
TypeScript Error: Object is possibly 'undefined'.
이것이다.
이는 내가 정의한 무언가의 타입이 undefined일 수 있는데, TypeScript가 "너 왜 undefined로는 타입 설정을 안했어?"라고 하는 것이다.
분명 내가 사용한 무언가는 undefined가 아니라고 나 스스로는 단정 지을 수 있지만, TypeScript입장에서는 단정 지을 수 없으니, 위험하다고 경고를 주는 것이다.
이때 TypeScript에게 "걱정마 undefined가 아니야"라고 단정지어 줄 수 있는데, 그게 바로 "Non-Null"단언 연산자다.
사용 방법은 간단하다, 바로 내가 단언하고 싶은 무언가의 가장 뒤쪽에 "!"만 넣어 주면 된다.
예:
const {date} = useContext(DateContext)!;
이렇게 사용하면 된다.