naver.map의 타입 정의를 하는데 의문이 생김.
네이버 지도 script를 가져올 때 문제가 발생한다면, 인스턴스를 생성하기 전부터 이미 오류가 발생하지 않나?
따라서 오류 검증이 충분히 된 상태인데, 굳이 map인스턴스의 타입을 null 허용해야 하는지 궁금증이 생김.
interface MapContextType {
map: naver.maps.Map | null; // 지도 인스턴스 객체
userCity: string; // 사용자 시도별 위치를 저장할 상태
userCoordinates: { latitude: number; longitude: number } | null; // 사용자 좌표 상태
setMapInstance: (mapInstance: naver.maps.Map) => void; // map 인스턴스를 설정하는 함수
}
따라서 간단히 로딩중 정도만 보여주는 요구사항이라면, loading상태를 이용하여 충분히 해결가능하고 null값을 허용하지 않아도 된다.
null값을 허용하는 경우는 초기화 실패 상황을 명확히 구분해야 할 때. 좀 더 실패 상황의 요구상황이 구체적일 때.
const [map, setMap] = useState<naver.maps.Map | undefined>();
return (
<MapContext.Provider
value={{
map: map as naver.maps.Map, // map이 반드시 유효하다고 TypeScript에 알림
userCity,
userCoordinates,
setMapInstance,
}}
>
{children}
</MapContext.Provider>
);
수정 결과: 논리적으로 map은 항상 undefined가 아닌 naver.maps.Map을 가짐!!!
'프로젝트' 카테고리의 다른 글
[프로젝트 회고] STDev 해커톤 (0) | 2025.05.05 |
---|---|
[re-poompoom] poompoom 개선 (3) | 2025.04.26 |
[SMAAP] npx와 npm 차이 (0) | 2024.10.27 |
[SMAAP] 트러블슈팅 ESLint 9.0.0 (0) | 2024.10.24 |
[SEAYA] 모달창 구현 시 UX/접근성/스크린 리더 고려. (0) | 2024.09.28 |