4

我想使用 webpack 提供的代码拆分功能来创建我的应用程序的几个包,使用 typescript 开发,并按需加载它们。我一直在网上寻找解决方案,我找到的最接近的答案是这个: 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 回答