打字稿:
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。我正在加载" MyClass"带有要求([" myclass"])电话。
答案 0 :(得分:0)
如果要导出模块(及其内容),则需要export
包含该类的模块。
但实际上,没有理由拥有顶级'命名空间'外部模块中的模块。请参阅"不必要的命名空间"在TypeScript Handbook
中