当我在 IE11 中加载页面时,我从打字稿中的简单模块/类中收到以下错误。在 Edge 和 Chrome 等其他浏览器中不会发生该错误。
Clock.js SCRIPT1002 中第 4 行第 5 列的 JavaScript 严重错误:
语法错误
这是TS代码。
module DateTime {
export class TestMe {
private timeNow:Date;
constructor() {
alert("Hello");
}
}
}
这是由它生成的 JS 代码。
var DateTime;
(function (DateTime) {
class TestMe {
constructor() {
alert("Hello");
}
}
DateTime.TestMe = TestMe;
})(DateTime || (DateTime = {}));
这就是在页面上调用它的方式。
<script type="text/javascript">
$(document)
.ready(function() {
var testIt = new DateTime.TestMe();
}
);
</script>
从调试器中我可以看到它不喜欢 JS 代码中的“class”关键字。页面甚至无法创建“TestMe”的实例,因为clock.js 中的语法错误不允许加载该文件。
我需要添加什么才能使其在 IE11 中工作吗?我也尝试过包含 es6 shim,但出现同样的问题。
感谢您对此问题的任何意见。
IE 11 不支持class keyword https://kangax.github.io/compat-table/es6/#test-class和语言功能,根据兼容性表。
您可以使用以下命令强制 Typescript 编译器输出与旧版本 JavaScript 兼容的代码the --target option https://www.npmjs.com/package/typescript-compiler#tsc-arguments或您构建中的同等内容。否则,您需要通过另一个转译器(例如 Babel)运行 TS 输出,以生成可在 IE 下运行的 ES5。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)