📎아이템 60 allowJs로 타입스크립트와 자바스크립트 같이 사용하기

대규모 프로젝트를 마이그레이션 할 때, 자바스크립트와 타입스크립트가 동시에 동작할 수 있도록 해야 한다. 자바스크립트와 타입스크립트의 공존 방법에는 allowJs 컴파일러 옵션이 있다. (자바스크립트 파일과 타입스크립트 파일을 서로 임포트할 수 있게 해준다.)

자바스크립트 파일은 @ts-check 지시자를 추가하기 전까지는 문법 오류 이외에 다른 오류가 발생하지 않는다. '타입스크립트는 자바스크립트의 상위집합이다.'를 생각하면 쉽게 이해할 수 있다.

📍 allowJs 옵션이 필요한 경우

  • 기존 빌드 과정에서 타입스크립트 컴파일러를 추가하기 위해

  • 모듈 단위로 타입스크립트로 전환하는 과정에서 테스트를 수행해야 하기 때문에

번들러에 타입스크립트가 통합되어 있거나, 플러그인 방식으로 통합이 가능하다면 allowJs를 간단히 적용할 수 있다.

대부분의 유닛 테스트 도구에는 동일한 역할을 하는 옵션이 있다.

만약, 프레임워크 없이 빌드 체인을 직접 구성했다면, outDir 옵션을 사용하면 된다. 타입스크립트가 outDir에 지정된 디렉터리에 소스 디렉터리와 비슷한 구조로 자바스크립트 코드를 생성하게 되고, outDir로 지정된 디렉터리를 대상으로 기조노 빌드 체인을 실행하면 된다.

📍 요약

  • 점진적 마이그레이션을 위해 자바스크립트와 타입스크립트를 동시에 사용할 수 있게 allowJs 컴파일러 옵션을 사용한다.

  • 대규모 마이그레이션 작업을 시작하기 전에, 테스트와 빌드 체인에 타입스크립트를 적용해야 한다.

Last updated