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"
打字稿:
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"