TypeScript
타입 에러로 빌드가 막릴 때 빠르게 좁히는 법
TypeScript 에러 메시지가 길어서 원인이 보이지 않을 땐, 에러의 출처부터 명확히 하는 것이 먼저다.
웹 개발 프로젝트에서 npm run build를 했을 때 타입 에러가 나면 화면이 가득 찬 에러 메시지에 좌절할 수 있다. 하지만 체계적으로 접근하면 대부분의 타입 문제는 몇 가지 원인에서 비롯된다.
빌드 에러 메시지 보는 순서
먼저 에러 메시지의 처음 부분만 본다.
npm run build 2>&1 | head -50
대부분의 경우 처음 에러가 이후 에러들의 원인이다. 나머지는 연쇄 반응일 가능성이 높다.
에러 파일과 줄 번호 확인
에러 메시지에서 파일 경로와 줄 번호를 먼저 적어둔다.
error TS2322: Type 'string' is not assignable to type 'number'.
at src/components/Button.tsx:23:5
이 정보만으로 해당 파일을 열고 그 줄을 봐도 원인을 찾을 수 있다.
타입 오류의 일반적인 원인
- 환경 변수 타입 안 맞음:
.env파일에 있는 값이 의도한 타입과 다를 때 - 외부 라이브러리 버전 차이: node_modules에 설치된 버전이 예상과 다를 때
- tsconfig 설정:
strictNullChecks같은 엄격한 옵션이 켜져 있을 때
빠른 확인
npm run build 2>&1 | grep -A 2 "error TS"
이 명령어로 타입 에러만 필터링해서 본다. 그리고 가장 먼저 나온 에러부터 하나씩 고치면 된다.