context를 사용하는 컴포넌트에서 항상 null을 확인하는 전처리를 해주는 불편한 상황
문제
ContextAPI를 사용하여 다크모드를 구현 하는 도중에 Custom Hook useDarkMode 에서 다크모드를 사용하기 위해 작성한 ThemeContext 를 사용할 때 context를 사용하는 컴포넌트에서 항상 null을 확인하는 전처리를 해주는 불편한 상황이 있었다.

위 사진처럼 null인 것 같다는 메세지가 나와서 전처리를 해줬어야 한다.

이런 식으로 앞에 ? 을 붙여서 해결을 해줬지만 분명 값이 null이 아닌 걸 잘 아는데 굳이 이렇게 사용하는 곳마다 ? 을 붙여서 처리를 해줘야 하는 생각이 들었다.
원인
원인은 바로 ThemeProvider에서 내가 null을 같이 작성했기 때문에 전처리를 하라고 나온 것이었다.

해결
알아본 결과 TypeScript에 type assertion을 활용하면 해결할 수 있었다.
이 방법은 개발자가 전적으로 믿을 때 사용하는 방법이다.

Last updated
Was this helpful?