4

typescript を使用して開発したアプリの複数のバンドルを作成し、オンデマンドでロードするために、webpack が提供するコード分割機能を使用したいと考えています。私はしばらくオンラインで解決策を探していましたが、見つけた最も近い答えはこれです: https://github.com/TypeStrong/ts-loader/blob/master/test/execution-tests/babel-codeSplitting /require.d.ts

この例は、公式の ts-loader ドキュメントから直接取得したものであり、分割ポイントを作成するために require.ensure に依存する方法を示しています。

私を悩ませているのは、タイプスクリプトでそれを行う簡単な方法がないことです。require.ensure 関数は typescript で直接呼び出す必要があります。次の宣言ファイルを指定して、typescript がその呼び出しを黙って消化できるようにする必要があります。

declare var require: {
    <T>(path: string): T;
    (paths: string[], callback: (...modules: any[]) => void): void;
    ensure: (paths: string[], callback: (require: <T>(path: string) =>   T) => void) => void;
};

同じ結果を達成するためのよりエレガントな方法はありますか?

4

1 に答える 1

0

同じ結果を達成するためのよりエレガントな方法はありますか

いいえ。さまざまなランタイムには、オンデマンドでモジュールをロードするための異なる (一貫性のない) API があります。そのため、TypeScript はここで不可知論的であることを選択しました。

もっと

遅延読み込みに関するいくつかの注意事項と、型安全性の観点からの仕組み: https://basarat.gitbooks.io/typescript/content/docs/project/external-modules.html

于 2016-09-12T23:02:54.693 に答える