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

Byt*_*cks 3 javascript typescript

当我在IE11中加载页面时,我从typescript中的简单模块/类中得到以下错误.在Edge和Chrome等其他浏览器中不会发生此错误.

clock.js第4行第4行的JavaScript严重错误SCRIPT1002:语法错误

这是TS代码.

module DateTime {
    export class TestMe {
        private timeNow:Date;
        constructor() {
            alert("Hello");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这里是从它生成的JS代码.

var DateTime;
(function (DateTime) {
    class TestMe {
        constructor() {
            alert("Hello");
        }
    }
    DateTime.TestMe = TestMe;
})(DateTime || (DateTime = {}));
Run Code Online (Sandbox Code Playgroud)

这是在页面上调用它的方式.

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

从调试器我可以看到它不喜欢JS代码中的"class"关键字.Page甚至没有创建"TestMe"的实例,因为clock.js中的语法错误不会让该文件加载.有什么我需要包含它在IE11中工作吗?我试图包括es6垫片,但同样的问题.

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

ssu*_*ube 16

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

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


Tuv*_*via 8

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

尝试更改编译器选项以编译为es5.