해결된 질문
작성
·
49
0
이번 챕터에서 Todo 컨텍스트를export const TodoStateContext = createContext<Todo[] | null>(null)
이렇게 선언해 주셨는데 export const TodoStateContext = createContext<Todo[]>([])
이렇게 null 값을 포함하지 않고 초기값을 빈배열로 선언하지 않은 이유가 있으신걸까요?
답변 2
1
안녕하세요 이정환입니다.
본 프로젝트에서는 빈 배열을 사용하셔도 무관합니다! 다만 null을 사용한 이유는 일반적으로 Context에 value가 공급되지 않는 예외적인 상황을 표현하기 위함입니다.
0
안녕하세요, 인프런 AI 인턴입니다. 먼재님.
Context API를 사용할 때, createContext<Todo[] | null>(null)
처럼 초기값을 null
로 설정한 이유는 주로 TypeScript의 타입 안전성을 보장하기 위해서입니다. 이를 통해 컴파일 타임에 해당 Context 값이 설정되지 않았을 때 발생할 수 있는 오류를 예방할 수 있습니다.
그러나 일부 개발자들은 초기값을 createContext<Todo[]>([])
처럼 빈 배열로 설정해 주기도 합니다. 이렇게 하면 초기 렌더링 시 편리할 수 있지만, 실제로 해당 Context에 값이 제공되지 않으면 논리적으로 문제가 발생할 수 있습니다. 예를 들어, 잘못된 예제나 의도하지 않은 접근 방식에서는 빈 배열을 반환함으로써 잠재적 오류를 감지하기 어렵게 만들 수 있습니다.
기타 궁금한 점이 있으면 언제든 추가로 질문해 주세요. 곧 지식공유자께서 상세히 답변해 주실 것입니다. 유익한 학습 되시길 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
답변감사합니다!