基本上,我想为从 ts 文件访问的 AMD js 模块定义一个接口。问题是 ts 中的模块导入不会返回通常在 AMD js 模块中定义和返回的匿名类。所以我不能使用'new'来实例化它们。
我有一个 AMD 模块(它是包的主文件,我在其他模块中将其称为“a/main”),如下所示:
main.js
define(function(){
var a=function(){...}; //constructor
a.prototype={...};//body
return a;
});
为了在打字稿中使用 a/main,我创建了adts,其中 a 的定义如下:
declare module "a/main"{
//I don't know how to writ this part...
}
然后我有一个打字稿文件,我想在其中使用:
其他文件.ts
///<reference path="a.d.ts"/>
import a=module("a/main"); //here a should refer to a inside the main.
//so I should be able to say:
var x=new a();
问题是模块不是新的。所以, var x=new a(); 不会工作。
您能建议声明“a/main”模块的最佳方式吗?
注意:我有很多像 a.js 这样的文件,并且更喜欢找到一种方法来编写 .d.ts 文件,这样我就不需要更改所有 .js 文件,即,更改 .js 文件是最后一个采取。