본문으로 건너뛰기

아이템 61 의존성 관계에 따라 모듈 단위로 전환하기

점진적 마이그레이션을 할 때는 모듈 단위로 하는 것이 이상적이다. 그런데 한 모듈을 골라서 타입 정보를 추가하면 해당 모듈이 의존(임포트)하는 모듈에서 비롯되는 타입 오류가 발생하게 된다. 의존성과 관련된 오류없이 작업하려면, 다른 모듈에 의존하지 않는 최하단 모듈부터 작업을 시작해서 의존성의 최상단에 있는 모듈을 마지막으로 완성해야 한다.

타입스크립트로 전환하며 발견하게 되는 일반적인 오류는 다음과 같다.

  • 선언되지 않은 클래스 멤버
  • 타입이 바뀌는 값

요약

  • 마이그레이션의 첫 단계는 서드파티 모듈과 외부 API 호출에 대한 @types 를 추가하는 것이다.
  • 의존성 관계도의 아래에서부터 위로 올라가며 마이그레이션을 하면 된다. 첫 번째 모듈은 보통 유틸리티 모듈이다. 의존성 관계도를 시각화하여 진행 과정을 추적하는 것이 좋다.
  • 이상한 설계를 발견하더라도 리팩터링을 하면 안된다. 마이그레이션 작업은 타입스크립트 전환에 집중해야 하며, 나중의 리팩터링을 위해 목록을 만들어 두는 것이 좋다.
  • 타입스크립트로 전환하며 발견하게 되는 일반적인 오류들을 놓치지 않아야 한다. 타입 정보를 유지하기 위해 필요에 따라 JSDoc 주석을 활용해야 할 수도 있다.