我对这个可能该死的问题感到抱歉。
问题:
我已经在 typescript 中定义了类,如下所示:
1 class MyClass {
2 constructor() {
3 alert("MyClass instantiated!");
4 }
5 }
6 export = MyClass;
它被编译成javascript如下:
1 var MyClass = (function () {
2 function MyClass() {
3 var _this = this;
4 alert("MyClass instantiated!");
5 }
6 }
7 module.exports = MyClass
它是从 jsp 页面引用的 - 该页面还执行以下操作:
<script language='javascript' src="myclass.js">
var myclass = new MyClass();
</script>
现在,我已经对其进行了调试,它到达了(已编译的 .js 的)1 行,然后在同一文件的 7 行处退出。
问题:
为什么不进入函数并退出?我是否错误地实例化了它?
最佳答案
问题在于您将 TypeScript 导出为 commonjs
格式(由第 7 行的 module.exports = MyClass
指示)。
您需要的是将 TypeScript 编译为浏览器可以接受的 UMD
格式。
或者只需从 TypeScript 源代码中删除 export = MyClass;
即可。
工作 TS 代码:
class MyClass {
constructor() {
alert("MyClass instantiated!");
}
}
将被编译为:
var MyClass = (function () {
function MyClass() {
var _this = this;
alert("MyClass instantiated!");
}
}
然后在页面上使用:
<script type="text/javascript" src="myclass.js"></script>
<script>
var myclass = new MyClass();
</script>
关于javascript - 无法在 JavaScript 中实例化 TypeScript 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36502463/