웹 개발
제네릭이 빌드에서만 에러 날 때 대처법
TypeScript 제네릭이 로컬에선 안 되고 빌드에서만 에러 날 때, 빠르게 찾아내는 방법.
화면 하나만 보지 말고 로그와 응답을 함께 봐야 한다. TypeScript 제네릭 문제는 특히 그렇다. 타입 안정성 전체 흐름에서 원인을 좁혀야 해결된다.
한 줄 요약: 문제의 경계 정하기
정상 상태를 먼저 정해두는 게 좋다. 그래야 타입 가드 결과가 맞는지 아닌지를 빠르게 판단할 수 있다.
먼저 볼 파일들
실제 응답부터 확인하면 불필요한 수정을 줄일 수 있다. 작은 확인이 쌓이면 원인 후보가 자연스럽게 줄어든다.
- 먼저 볼 값: 실제 응답과 타입 정의
- 비교할 값: 정상일 때의 타입 안정성 상태
- 남겨둘 기록: 빌드 로그, 응답 코드, 수정한 설정
npm run build
npx tsc --noEmit
optional/null 확인
제네릭 자체보다 재현 가능한 단서를 남기는 게 중요하다. 타입 정의를 확인하면 다음으로 볼 범위가 확 줄어든다.
타입 가드 확인과 실수 포인트
빌드 에러가 애매하면 다른 부분을 고쳐도 결과가 바뀌지 않을 수 있다. 따라서 정확한 에러 메시지를 파악하는 게 먼저다.
- 증상이 같은 조건에서 다시 나는지 확인한다.
- 빌드 로그에서 바뀐 부분을 정확히 설명한다.
- 빌드 결과와 실제 실행 결과를 최종 확인한다.
결과가 바뀐 이유를 빌드 로그로 설명할 수 있으면 충분히 정리된 것이다.