这是什么样的javascript语法;var XX=(函数(){…})()&引用;我如何将其与TypeScript一起使用
我在PDFJS查看器示例中发现:这是什么样的javascript语法;var XX=(函数(){…})()&引用;我如何将其与TypeScript一起使用,javascript,typescript,Javascript,Typescript,我在PDFJS查看器示例中发现: var XX = (function XXClosure() { function XX(options) { ... }, XX.prototype = { myMethod1: function(){...}, myMethod2: function(){...}, ... } return XX; })(); 我创建了一个这样的构造,完全不知道它是什么,并以这种方式在javascript项目中使用它:
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 viewer.js复制了这个,它成功了,我从来没有问过为什么
但是现在,在typescript项目中,它应该也能工作。有人能解决这个问题吗?这叫做like
如果您想将JavaScript
中的内容注入TypeScript
中,则必须使用
在扩展名为.d.ts的文件中声明语句
对此,请参见此处
而且您还需要使用declare var XX:any
->,这就是所谓的like
如果您想将JavaScript
中的内容注入TypeScript
中,则必须使用
在扩展名为.d.ts的文件中声明语句
对此,请参见此处
而且您还需要使用declare var XX:any
->感谢首先是
对于TypeScript,您可以使用类()首先是
对于TypeScript,您可以使用class
()它们基本上是通过使用自调用函数来创建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{...}
他们基本上是通过使用自调用函数来创建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{...}
谢谢大家的帮助。我问题的第一部分已经完全回答了。第二部分,我侥幸解决了。我删除了“use strict”行,得到了一条有意义的错误消息:“使用未定义的变量”
我在“constructor”中使用了一个全局对象变量,该变量来自另一个js模块,该模块当时没有加载。将“script src='…'”放在主html页面的头块中而不是html模板中,解决了我的问题。谢谢大家的帮助。我问题的第一部分已经完全回答了。第二部分,我侥幸解决了。我删除了“use strict”行,得到了一条有意义的错误消息:“使用未定义的变量”
我在“constructor”中使用了一个全局对象变量,该变量来自另一个js模块,该模块当时没有加载。将“script src='…'”放在主html页面的头块中而不是html模板中,解决了我的问题。declare在任何地方都有效。他只需要说它是一个变量,所以声明var XX:any@好的。我知道当你想第一次运行js代码时,你需要把它放在.d.ts
文件中谢谢你的回答。现在我知道是什么了。下次我将尝试.d.ts文件中的条目。declare在任何地方都有效。他只需要说它是一个变量,所以声明var XX:any@好的。我知道当你想第一次运行js代码时,你需要把它放在.d.ts
文件中谢谢你的回答。现在我知道是什么了。下次我将尝试.d.ts文件中的条目。可能的正确副本,但它只回答我问题的第一部分。可能的正确副本,但它只回答我问题的第一部分。谢谢您的回答。现在我知道是什么了。类构造是个好主意,但我必须澄清我是否可以使用ES6特性。Typescript允许类。然后,您的类将被转换成与原始代码非常相似的东西。类:,模块:代码是不同项目的通用代码。它应该适用于ts-和js-项目。谢谢你的回答。现在我知道是什么了。类构造是个好主意,但我必须澄清我是否可以使用ES6特性。Typescript允许类。然后,您的类将被转换成与原始代码非常相似的东西。类:,模块:代码是不同项目的通用代码。它应该适用于ts-和js-项目。谢谢你的回答。现在我知道是什么了。班级结构是个好主意,但我必须澄清我是否可以使用ES6功能。谢谢你的回答。现在我知道是什么了。类构造是一个好主意,但我必须澄清我是否可以使用ES6特性。