Typescript中的Javascript错误在IE11中生成JS

Javascript error in Typescript generated JS in IE11

本文关键字:JS IE11 中的 Javascript 错误 Typescript      更新时间:2023-09-26

当我在IE11中加载页面时,typescript中的一个简单模块/类出现以下错误。该错误不会在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"关键字。Page甚至无法创建"TestMe"的实例,因为clock.js中的语法错误不允许加载该文件。我需要包括什么才能在IE11中工作吗?我试着也包括es6垫片,但同样的问题。

感谢您对此问题的任何意见。

根据兼容性表,IE 11不支持class关键字和语言功能。

您可以在构建中使用--target选项或等效选项,强制Typescript编译器输出与旧版本JavaScript兼容的代码。否则,您将需要通过另一个转发器(如Babel)运行TS输出,以生成将在IE下运行的ES5。

您的编译器似乎仍在编译到IE11不支持的es6代码

尝试更改编译器选项以编译到es5。