dev.error/error

[Typescript] TS1208 Error, isolatedModules

seuhyang 2023. 7. 20. 13:58

Typescript에서 TS1208 오류, isolatedMoudules 옵션 오류는 파일에서 모듈 간의 의존성 문제 때문에 발생되는 문제입니다.

이 문제는 Compile하는 과정에서 생기는 문제이고, 단순히 아래 코드 같이해도 오류는 해결하고 넘어 갈 수 있습니다.

tsconfig.json 파일의 옵션을 바꾸거나

 

...
"isolatedModules": true,
...

빈 파일일 경우나 문제가 되는 파일에 export/import 문을 사용하거나

// 아무 내용이 없는 빈 파일에서 나는 에러인 경우에
export {}

// 설치되어있는 패키지를 import 하는 문구를 쓰는것으로 해결할 수 있다.
import dayjs from 'dayjs';

이렇게 간단히 넘어갈 수도 있는 문제일 수도 있지만 더 복잡한 경우 있습니다.

이 오류는 tsconfig.json 에서 isolatedModules: true 로 설정되어 있기 때문에 발생하는 문제인데요.

 

pm2를 .cjs 파일로 설정된 것을 사용하려고 했을 때도 나타날 수 있는데 아래의 옵션을 쓴다면 해결될 수도 있다.

	...
	"esModuleInterop": true,
	...

 

 

단순히 에러를 잡겠다고 isolatedModules 옵션을 false 로 하는 것으로 넘어 갈 수 있지만 오히려 문제가 더 많이 발생할 수 있습니다.

만약 모듈 간의 의존성이 필요 없는 경우에는 isolatedModules 옵션을 사용하지 않도록 설정하면 됩니다. 이렇게 하면 모듈 간의 의존성 검사를 수행하지 않아도 됩니다.

 

하지만 그저 isolatedModules: false로 설정하는 것으로 넘어가는 좋은 해결 방법이 아닙니다.

 

2023.07.20 - [dev.lang/Typescript] - [Typescript] 모듈 (Module)

 

[Typescript] 모듈 (Module)

모듈(Module)은 TypeScript에서 코드를 구성하는 논리적인 단위입니다. 모듈은 특정 기능을 담당하며, 다른 모듈과는 독립적으로 동작할 수 있습니다. 간단히 말하면, 모듈은 코드의 일부분을 캡슐화

seuhyang.tistory.com