要将Typescript与requireJs一起使用,我在一个常见的 export 模块中创建了两个 export 类。这允许我使用 requireJs 加载它们:
require(["class1", "class2"], function (_class1, _class2) {
var x = new _class1.mymodule.class1();
var y = new _class2.mymodule.class2();
}
以下是其中一个 class -files
的示例export module mymodule {
export class class1 {
//some props and functions
}
}
经过长时间的研究,我没有想出如何以这样的方式引用模块:
// not working code ahead:
require(["class1", "class2"], function (mymodule) {
var x = new mymodule.class1();
var y = new mymodule.class2();
}
最后一个代码块是脚本 HTML标记中的普通javascript。
答案 0 :(得分:1)
而不是写
export module mymodule {
export class class1 {
//some props and functions
}
}
写这个
export class class1 {
//some props and functions
}
没有必要在具有外部模块的命名空间中包装您的类,因为它们的导入器可以决定它们所引用的名称。另请参阅TypeScript文档的“Needless Namespacing”部分。
答案 1 :(得分:1)
好的,这不是我想象的,但它对我来说是一个解决方案。这是我想出来的:
export
,例如 class1 , class2 <reference path="class2" />
引用typescript文件以获取 TSLint 的声明<强> wrapper.ts 强>
/// <reference path="test/class1.ts" />
/// <amd-dependency path="class1" />
/// <reference path="test/class2.ts" />
/// <amd-dependency path="class2" />
export var class1: class1;
export var class2: class2;
javascript阻止
require(["wrapper"], function () {
// do something with the dependencies
var x = new class1();
}