Item 62 마이그레이션의 완성을 위해 noImplicitAny 설정하기

About

프로젝트 전체를 .ts로 전환했다면 매우 큰 일을 해낸 것이다. 하지만 마지막 단계인 noImplicitAny를 설정하는 것이 남아있다(Item 2).

  • noImplicitAny가 설정되지 않은 상태에서는 타입 선언에서 비롯되는 실제 오류가 숨어 있으므로 마이그레이션이 완료되었다고 할 수 없다.

  • 처음에는 noImplicitAny를 로컬에만 설정하고 작업하는 편이 좋다.

    • 원격에서는 설정의 변화가 없게 되므로 빌드가 실패하지 않는다.

    • 로컬에서만 오류로 인식되므로, 수정된 부분만 커밋할 수 있어 점진적 마이그레이션이 가능하다.

    • 한편, 타입 체커가 발생하는 오류의 개수는 noImplicitAny와 관련된 작업의 진척도를 나타내는 지표로 활용할 수 있다.

  • 타입 체크의 강도를 높이는 설정엔 여러 가지가 있다. 이번 아이템에서 설명하고 있는 noImplicitAny는 상당히 엄격한 설정이며, strictNullChecks 같은 설정을 적용하지 않더라도 대부분의 타입 체크를 적용한 것으로 볼 수 있다.

  • 가장 강력한 설정은 "strict": true이다. 타입 체크의 강도는 팀 내의 모든 사람이 타입스크립트에 익숙해진 다음에 조금씩 높이는 것이 좋다.

Summary

  • noImplicitAny 설정을 활성화하여 마이그레이션의 마지막 단계를 진행해야 한다. 이 설정 없이는 타입 선언과 관련된 실제 오류가 드러나지 않는다.

  • noImplicitAny를 전면 적용하기 전에 로컬에서부터 타입 오류를 점진적으로 수정해야 한다. 엄격한 타입 체크를 적용하기 전에 팀원들이 타입스크립트에 익숙해질 수 있도록 시간을 주자.

My Thoughts

신규 프로젝트라면 "strict": true는 처음부터 켜는게 좋다... 🙂

Last updated