인프런 커뮤니티 질문&답변

kizarrd10님의 프로필 이미지
kizarrd10

작성한 질문수

한 입 크기로 잘라먹는 타입스크립트(TypeScript)

Context API

dispatch가 null인 경우 에러를 발생시키도록 하는 패턴을 실무에서도 사용할 수 있나요?

해결된 질문

작성

·

156

0

안녕하세요, optional chaning을 사용하는 대신 dispatch가 null인 경우 에러를 발생시키도록 커스텀 훅을 작성하여 해결한다는 것으로 이해했는데, 이러면 사실 optional chaning을 사용하는 것보다도 더 위험한 코드가 되는것은 아닌지 질문드립니다.

실제 프로덕트에서라면 try catch로 감싸야 하는 것인지, 만약 그렇다면 구체적으로 어떤식으로 작성할 수 있을지 궁금합니다

답변 1

1

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

안녕하세요 이정환입니다.

우선 Context로 부터 불러온 dispatch가 null인 경우는 아래 2가지 중 하나일 것으로 예상됩니다.

  • Provider에게 데이터를 공급하지 않았을 때

  • Provider의 영역이 아닌 외부에서 데이터를 사용하려고 할 때

위 두 상황 모두 전반적인 App을 셧다운 시킬 수 있을 만큼 매우 위험한 상황입니다. 따라서 useTodoDispatch Hook에서도 throw로 예외를 던져 TodoDispatchContext에서 오류가 발생했다고 확실히 알려주는게 좋다고 생각합니다.

또는 Context의 타입을 nullable하지 않게 유지하기 위해 초기값을 만들어 두는것도 좋은 방법이 될 수 있을 것 같습니다. 그러나 이 방법은 문제가 생겼을때 디버깅을 힘들게 만들 가능성이 있습니다.

내키지 않으신다면 Zod 등의 런타임 타입체크 툴을 이용하시는것도 방법이 될 수 있을 것 같습니다.

감사합니다.

kizarrd10님의 프로필 이미지
kizarrd10

작성한 질문수

질문하기