【问题标题】:Javascript error in Typescript generated JS in IE11Typescript 中的 Javascript 错误在 IE11 中生成 JS
【发布时间】:2016-08-11 23:00:56
【问题描述】:

当我在 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 = {}));

这是在页面上调用 this 的方式。

<script type="text/javascript">
            $(document)
                .ready(function() {
                        var testIt = new DateTime.TestMe();
                    }
                );
    </script>

从调试器中我可以看出它不喜欢 JS 代码中的“class”关键字。页面甚至无法创建“TestMe”实例,因为clock.js 中的语法错误不会让该文件加载。 我需要包括什么才能在 IE11 中工作吗?我也尝试过包含 es6 shim 但同样的问题。

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

【问题讨论】:

  • 请显示你的命令行

标签: javascript typescript


【解决方案1】:

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

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

【讨论】:

  • 就是这样。我在某个时候将编译器设置更改为 ES6。
【解决方案2】:

IE 11 does not support the class keyword 和语言特性,根据兼容性表。

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

【讨论】:

  • 哈哈同一时间;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-18
  • 2018-03-14
  • 2018-12-08
  • 1970-01-01
  • 2021-04-21
相关资源
最近更新 更多