我在 PDFJS 查看器示例中找到了这个:
var XX = (function XXClosure() {
function XX(options) {
...
},
XX.prototype = {
myMethod1: function(){...},
myMethod2: function(){...},
...
}
return XX;
})();
我创建了一个像这样的构造,但不知道它是什么,并以这种方式在 JavaScript 项目中使用它:
var myXX = new XX(myOptions);
myXX.Method1();
这非常有效。
现在我尝试在 TypeScript 项目中使用此构造:
declare XX:any
import myJavascript.js;
var myXX = new XX(myOptions);
我在运行时收到错误:“XX 不是构造函数”
不要问我为什么这样做,可能还有其他的,我从PDFJS reader.js复制了这个,它有效,我从来没有问过为什么。
但是现在,在 typescript 项目中,它也应该可以工作。有人有解决方案吗?
最佳答案
他们基本上是通过使用自调用函数来创建 ES6 类:即 (function(){})()。这被分配给变量 XX。
Typescript 中的类似构造是
class XX {
constructor(options){
//do stuff with options
}
myMethod1(){}
myMethod2(){}
...//additional methods
}
您可以像实例化 JS 对象一样实例化它
var xx = new XX(options);
如果您导出该类,它应该可以毫无问题地导入。
export class XX{...}
关于javascript - 这是什么类型的javascript语法: "var XX = (function (){...})();" and how can I use it with TypeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38769998/