javascript – Angular2中的ES6-shim与Typescript lib.es6.d.ts冲突

参见英文答案 > AngularJS 2.0 compile to ES6                                    4个

我想将使用Typescript编写的Angular2应用程序编译成ES6代码规划,最近使用Babel将其编译为ES5.但是我收到了错误:

node_modules/angular2/typings/es6-shim/es6-shim.d.ts(6,14): error TS2300: Duplicate identifier 'PropertyKey'.
<...>
node_modules/typescript/lib/lib.es6.d.ts(3841,14): error TS2300: Duplicate identifier 'PropertyKey'.
<...>

我试图解决这个问题,将指令noLib添加到我的tsconfig.json中,但是其中一个角度文件(zone.d.ts)需要导入es6-shim.d.ts

/// <reference path="es6-shim/es6-shim.d.ts" />

它与主要的脚本ES6库(lib.es6.d.ts)冲突.

我怎么解决这个问题?

最佳答案 你在tsconfig.json中试过这个吗?:

    {

        “compilerOptions”:{

          “目标”:“ES6”

        }

    }

顺便问一下,如果你已经在使用打字稿,你为什么要使用babel?他们都是编译器,你只需要一个.如果你的代码用typescript编写,typescript编译器会把它编译成js,你不能重新编译它,因为它已经编译过了.只需选择目标编译器选项是否使用es5或es6语法,如果使用es6语法编译它,请确保在应用程序中添加es6垫片,以便它在尚未识别es6的浏览器上运行时.

点赞