Typescript 不为带有内部模块的 requirejs 导出 class

Typescript not exporting class for requirejs with internal modules

打字稿:

import classModule = require("path/to/class");

module my.namespace {
  export class MyClass {
    constructor() {
       var someClass = new classModule.className();
    }
  }
}

已生成 JAVASCRIPT:

define(["require", "exports", "path/to/class"], function (require, exports, classModule) {
    var my;
    (function (my) {
        var namespace;
        (function (namespace) {
            var MyClass = (function () {

                function MyClass () {

                    var someClass = classModule.className();

                }
                return MyClass ;
            })();
            namespace.MyClass = MyClass ;
        })(namespace = my.namespace || (my.namespace = {}));
    })(my || (my = {}));
});

因此,它不会导出 "MyClass",因此它对导入它的模块不可用。

如果我删除打字稿

module my.namespace

确实如此:

. . .
return MyClass;

})();
exports.MyClass= MyClass;

如何让它导出用内部模块包装的 MyClass?

我可以手动导出它,但我认为这应该可行。 我知道内部模块命名空间不是最好的,但我有大量代码包装在 Typescript 模块中。我正在使用 Visual Studio 并为项目设置了 AMD 标志。打字稿 1.4。我正在使用 require(["myclass"]) 调用加载 "MyClass"。

如果要导出模块(及其内容),则需要 export 包含 class 的模块。

不过,实际上,在外部模块中拥有顶级 'namespace' 模块的理由为零。请参阅 TypeScript Handbook

中的 "needless namespacing"