web-dev-qa-db-ja.com

isolatedModules = trueオプションを有効にしてパッケージを作成するにはどうすればよいですか?

次のような行でパッケージのすべてのクラスをエクスポートするファイルで:

export {default as BoundList, IBoundListOption, TBoundListFilterFn} from './list/BoundList';

フォームのエラーが生成されます:

TS1205: Cannot re-export a type when the '--isolatedModules' flag is provided.

クラスをエクスポートするにはどうすればよいですか?

この問題はCRA2.1で発生しました。 isolatedModules = trueが強制されました。 CRA2.1でコンポーネントライブラリを作成しています

11

github.com/babel/babel-loader/issues/6 (リンクのおかげで @ CollinD に感謝)には、インポートされたタイプを再エクスポートする方法の回避策が含まれています。 このコメント その問題についての回避策の最も良い説明があります:

タイプをエクスポートしていることが明らかな場合でも、are-exportを実行できます。

import { T as a_T } from "./a";
export type T = a_T;

"./a";から*をエクスポートすることもできます。

GitHubの問題を正しく読んでいる場合、再エクスポートできるのはTSタイプのみですが、値(クラスなど)は再エクスポートできません。したがって、TSが(クラスではなく)タイプをインポートしていることを認識している場合は、そのタイプを再エクスポートできます。

より簡単な別の例を次に示します。

import { T } from "./a";
export type T = T;
2
Justin Grant

はい - node_modules/fork-ts-checker-webpack-plugin/package.jsonは「バージョン」:「0.2.2」です。

変更はMicrosoft/TypeScript#15538で行われたようです。そのため、2.3でテストした場合、エラーは表示されません。しかし、2.4がリリースされると壊れるでしょう。

それでも、isolatedModulesがtrueにオーバーライドされている場合、これは問題になりません。

0
Singham