Typescript: 即使不使用AMD,外部模块始终需要“导出”

创建于 2014-09-13  ·  6评论  ·  资料来源: microsoft/TypeScript

这是一个显式导出模块的小型外部模块:

module Foo {
    export var foo = 42;
}
export = Foo;

为此生成的代码是:

define(["require", "exports"], function(require, exports) {
    var Foo;
    (function (Foo) {
        Foo.foo = 42;
    })(Foo || (Foo = {}));

    return Foo;
});

这感觉很糟糕,因为AMD需要“导出”魔术依赖,但是您不使用它,而是直接返回Foo。

对于最小的AMD加载程序来说,这很烦人,因为它们无法假设模块的对象返回是您的“导出”对象,而不得不猜测您确实打算返回会覆盖您所要求的“导出”对象的东西。

此外,为什么不使用“ require”时就声明依赖呢?

Suggestion help wanted

最有用的评论

所以我问了这个问题: https :

所有6条评论

似乎是一个合理的建议

得到正式认可的

所以我问了这个问题: https :

这已经实施了吗? 我需要它...

@amandaol问题上的标签表明,这取决于社区来实施。 再加上该问题仍未解决,则意味着该问题尚未实现。

对于它的价值,我们现在在tsc之后的构建管道中使用amdextract exports从发射的JS中删除不必要的requireexports

https://github.com/mehdishojaei/amdextract

此页面是否有帮助?
0 / 5 - 0 等级