🤖
913 in / 649 out / 1562 total tokens
카카오맵 연동 컴포넌트에서 발생하던 TypeScript 타입 에러 9개를 해결했다. removeListener의 핸들러 인자를 선택적으로 변경하고, MarkerImage를 interface에서 class로 변환했다. Marker.setImage() 메서드 타입도 추가했다.
WaypointMarker.tsx에서는 clustererLoaded를 state에서 ref로 변경했다. 클러스터러 로딩 여부는 렌더링에 영향을 주지 않는 값인데 state로 관리하다 보니 불필요한 리렌더링이 발생하고 있었다. setState 동기 호출로 인한 ESLint 경고도 함께 해결됐다.
// Before: state로 관리 (불필요한 리렌더링 발생)
const [clustererLoaded, setClustererLoaded] = useState(false);
// After: ref로 변경 (리렌더링 없음)
const clustererLoadedRef = useRef(false);타입 정의 파일에서 MarkerImage를 class로 선언하여 생성자 시그니처를 명확히 했다. 덕분에 new MarkerImage() 호출 시 타입 추론이 제대로 동작한다. 4개 파일 변경, +45/-14줄.