Javascript Angular 2与ES6兼容,并承诺不会在Internet Explorer 11上工作

Javascript Angular 2与ES6兼容,并承诺不会在Internet Explorer 11上工作,javascript,angular,promise,internet-explorer-11,systemjs,Javascript,Angular,Promise,Internet Explorer 11,Systemjs,我有一个Angular 2应用程序在Chrome/Edge上运行良好,但在Internet Explorer上失败,出现以下错误 我正在使用以下index.html: <!DOCTYPE html> <html> <head> <base href="/"> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,

我有一个Angular 2应用程序在Chrome/Edge上运行良好,但在Internet Explorer上失败,出现以下错误

我正在使用以下index.html:

<!DOCTYPE html>
<html>
<head>
    <base href="/">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>My App</title>

    <link rel="stylesheet" href="css/font-awesome.min.css">
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/lightbox.css">
    <link rel="stylesheet" href="css/site.css">

    <script src="scripts/es6-shim/es6-shim.min.js"></script>
    <script src="scripts/systemjs/system-polyfills.js"></script>
    <script src="scripts/angular2/shims_for_IE.js"></script>
    <script src="scripts/jquery/jquery.min.js"></script>
    <script src="scripts/bootstrap/bootstrap.min.js"></script>
    <script src="scripts/systemjs/system.js"></script>
    <script src="scripts/angular2/angular2-polyfills.min.js"></script>
    <script src="scripts/angular2/angular2.min.js"></script>
    <script src="scripts/angular2/http.min.js"></script>
    <script src="scripts/angular2/router.min.js"></script>
    <script src="scripts/angular2/Rx.min.js"></script>
    <script src="scripts/moment/moment-with-locales.min.js"></script>
    <script src="scripts/lightbox/lightbox.js"></script>
    <script src="scripts/html5sql/html5sql.min.js"></script>

    <script>
        System.config({
            packages: { 'app': { defaultExtension: 'js' } }
        });
        System.import('app/app/app.component');
    </script>
</head>
<body>
    <app></app>
</body>
</html>

我的应用程序
System.config({
包:{app':{defaultExtension:'js'}
});
系统导入('app/app/app.component');

在我能找到的范围内,前3个垫片/填充胶应能修复IE的任何缺失功能。我不确定是不是因为缺少对Promises、ES6或其他东西的本地Internet Explorer支持。我尝试将所有承诺都替换为可观察的,但错误仍然存在。

对于任何感兴趣的人来说,解决方案主要是将我的TypeScript输出更改为ES5,而不是ES6。尽管我使用了各种ES6垫片,但这仍然不足以让InternetExplorer工作

更新:

将TypeScript编译器输出更改为ES5是在
tsconfig.json
文件中完成的:

{
  "compilerOptions": {
    "target": "es5"
  }
}

IE11中不支持承诺,您的IE垫片是否包含承诺polyfill?示例:?它抱怨
app.component.js
中有语法错误,但您没有给我们该文件。@Denis Tsoi我尝试添加es6 promise,但错误仍然存在。为了以防万一,我会再试一次。请始终将屏幕截图保存为PNG而不是JPG。这个问题与承诺不起作用无关。事实上,它们工作得非常好:它们正在向您报告
app.component.js
中加载失败/语法错误的问题!您是如何将typescript输出更改为ES5的?@AkashJain将typescript编译器输出更改为ES5是在
tsconfig.json
文件中完成的。有关详细信息,请参阅更新的答案。嘿,克里斯,谢谢你的回复,我已经配置了此设置,但它仍然无法在IE11上工作。你认为还需要其他设置吗?@AkashJain我的问题代码中主要需要3个垫片/填充胶。如果它能在Chrome上运行,这些就是IE与ES5协同工作所需的主要内容。好的,谢谢Chris。