- Published on
cannot be compiled under '--isolatedModules'が出た時の対処方法
typescriptで下記のようなエラーが出た時の対処方法を紹介します。
'example.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.ts(1208)
対応としては、実は書かれている通りで、
Add an import, export, or an empty 'export {}' statement importするかexportするか
export {}
してくれと書かれています。
そのため、ファイルの最後を下記のようにしたらエラーは出なくなります。
... ... export {}
これは、typescriptがファイルをimport/exportsがないとmoduleではなくてただのscriptだと捉えるからです。 そのため、importやexportを追加してあげる必要があります。そうすることで、moduleとして認識されて、typescriptのerrorが出なくなります。
またそもそも独立したモジュールかどうかをチェックしなくする方法もあります。
tsconfig.json
でisolatedModules
をfalseにすると、moduleかどうかの判定をしなくなるので、エラーは出なくなります。ただ、これだと本来チェックすべきものもある中でもれは出てくるので、個人的にはどうかなと思っています。
"compilerOptions": { "isolatedModules": false },
ただ、jest
の時だけとかであれば、下記のようにしてい対応するのがいいかと思います。
"ts-jest": { "isolatedModules": false }