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

时间:2016-01-09 13:33:18

标签: javascript angular typescript

我想将使用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)冲突。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

你在tsconfig.json中试过这个吗?:     { "compilerOptions": { "target": "ES6" } }

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