Devlog/TypeScript

TypeScript '--isolatedModules' 에러 핸들링하기

myalog 2024. 4. 18. 21:40

TypeScript 프로젝트를 리팩토링하면서 만난 에러를 핸들링하고, 이를 기록하고자 한다.


 

리팩토링을 진행하던 중 더이상 사용하지 않는 파일이 있었고, 컴파일 에러가 발생했다.

 

ERROR in src/utils/handler.ts
TS1208: 'handler.ts' cannot be compiled under '--isolatedModules' because it is considered a global script file. Add an import, export, or an empty 'export {}' statement to make it a module.

 

'handler.ts'는 전역 스크립트 파일로 간주되므로 '--isolatedModules' 에서 컴파일 할 수 없으며, import나 export 또는 빈 export {} 문을 추가하여 모듈로 만들라고 한다.

 

TypeScript는 기본적으로 import/exports가 없는 파일을 레거시 취급을 하고,

이러한 파일들은 모듈이 아니기 때문에 전역 스크립트 파일이 된다. (전역 네임스페이스에 병합됨)

 

config 파일에서 isolatedModules 옵션을 false 값으로 변경하거나, 빈 파일을 생성하여 export {} 을 작성 후 저장하여 모듈로 만들어 해결한다.

 

// tsconfig.json

{
  "compilerOptions": {
    ...
    "isolatedModules": false, // true로 되어있는 boolean 값을 false로 변경
    ...
}
// handler.ts

export {};

 

나는 config 옵션을 건들이지 않고 사용하지 않게 된 파일에 export {} 를 작성하여 해결했다.

 

⭐️ TL;DR

트러블 슈팅
  • TypeScript 컴파일 에러 '--isolatedModules' 문제
해결 방법
  1. 빈 파일을 생성하여 export {} 를 입력 후 저장하여 해결
  2. tsconfig.json 파일에서 isolatedModules 옵션 값을 false 로 변경하여 해결

<Ref>

https://www.typescriptlang.org/ko/docs/handbook/compiler-options.html

https://stackoverflow.com/questions/56577201/why-is-isolatedmodules-error-fixed-by-any-import