Typescript 在 IE11 中生成 JS 时出现 Javascript 错误

2024-02-23

当我在 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(使用前将#替换为@)

Typescript 在 IE11 中生成 JS 时出现 Javascript 错误 的相关文章

随机推荐