1. ホーム
  2. タイプスクリプト

[解決済み】 --isolatedModules のエラーは、どのようなインポートでも修正されるのはなぜですか?

2022-04-13 15:29:31

質問

create-react-app タイプスクリプトのプロジェクトで、あるものを手早くテストするためにこれを書こうとしました。

// experiment.test.ts
it('experiment', () => {
  console.log('test');
});

しかし、次のようなエラーが表示され、その下に赤い四角い線が表示されます。 it :

--isolatedModules'フラグが指定されている場合、すべてのファイルがモジュールでなければなりません。

しかし、このファイルを以下のように変更すると、どうやらすべてうまくいくようです(もちろん、未使用のimportを除いて)。

// experiment.test.ts
import { Component} from 'react'; // literally anything, don't even have to use it

it('test', () => {
  console.log('test');
});

なぜ?ここで何が起こっているのでしょうか?何が --isolatedModules を意味するのか?

どのように解決するのですか?

Typescript は import/export のないファイルをレガシースクリプトファイルとして扱います。そのようなファイルはモジュールではないので、それらのファイルが持つ定義はすべてグローバルな名前空間にマージされます。 isolatedModules はそのようなファイルを禁止しています。

ファイルにimportやexportを追加すると、モジュールになり、エラーが消えます。

また export {} は便利な方法です を使えば、何もインポートせずにファイルをモジュール化することができます。