Item 62 마이그레이션의 완성을 위해 noImplicitAny 설정하기
About
프로젝트 전체를 .ts로 전환했다면 매우 큰 일을 해낸 것이다. 하지만 마지막 단계인 noImplicitAny
를 설정하는 것이 남아있다(Item 2).
noImplicitAny
가 설정되지 않은 상태에서는 타입 선언에서 비롯되는 실제 오류가 숨어 있으므로 마이그레이션이 완료되었다고 할 수 없다.처음에는
noImplicitAny
를 로컬에만 설정하고 작업하는 편이 좋다.원격에서는 설정의 변화가 없게 되므로 빌드가 실패하지 않는다.
로컬에서만 오류로 인식되므로, 수정된 부분만 커밋할 수 있어 점진적 마이그레이션이 가능하다.
한편, 타입 체커가 발생하는 오류의 개수는
noImplicitAny
와 관련된 작업의 진척도를 나타내는 지표로 활용할 수 있다.
타입 체크의 강도를 높이는 설정엔 여러 가지가 있다. 이번 아이템에서 설명하고 있는
noImplicitAny
는 상당히 엄격한 설정이며,strictNullChecks
같은 설정을 적용하지 않더라도 대부분의 타입 체크를 적용한 것으로 볼 수 있다.가장 강력한 설정은
"strict": true
이다. 타입 체크의 강도는 팀 내의 모든 사람이 타입스크립트에 익숙해진 다음에 조금씩 높이는 것이 좋다.
Summary
noImplicitAny
설정을 활성화하여 마이그레이션의 마지막 단계를 진행해야 한다. 이 설정 없이는 타입 선언과 관련된 실제 오류가 드러나지 않는다.noImplicitAny
를 전면 적용하기 전에 로컬에서부터 타입 오류를 점진적으로 수정해야 한다. 엄격한 타입 체크를 적용하기 전에 팀원들이 타입스크립트에 익숙해질 수 있도록 시간을 주자.
My Thoughts
신규 프로젝트라면 "strict": true
는 처음부터 켜는게 좋다... 🙂
Last updated