Angular2重复的标识符'PropertyKey'

我正在使用angular-cli构build一个angular2应用程序。 angular-in-memory-web-api未被默认安装。

所以我search了它,并在我的package.json文件中添加了这一行"angular-in-memory-web-api": "~0.1.5" 。 并没有npm install

在这之后,我带着这个错误Cannot find type definition file for 'core-js' #90 。 我在这个Github问题中find了一个解决scheme。

所以我运行这个命令npm install --save @types/core-jsbuild议由github-question 。 现在我面临这个错误。

 ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:21:13 Duplicate identifier 'PropertyKey'. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:85:4 All declarations of 'name' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:145:4 Subsequent variable declarations must have the same type. Variable '[Symbol.unscopables]' must be of type '{ copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: ...', but here has type 'any'. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:262:4 All declarations of 'flags' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:276:4 All declarations of 'EPSILON' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:311:4 All declarations of 'MAX_SAFE_INTEGER' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:318:4 All declarations of 'MIN_SAFE_INTEGER' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:457:4 Subsequent variable declarations must have the same type. Variable '[Symbol.toStringTag]' must be of type '"Symbol"', but here has type 'string'. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:457:4 All declarations of '[Symbol.toStringTag]' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:464:4 All declarations of 'prototype' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:492:4 All declarations of 'hasInstance' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:498:4 All declarations of 'isConcatSpreadable' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:504:4 All declarations of 'iterator' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:510:4 All declarations of 'match' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:516:4 All declarations of 'replace' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:522:4 All declarations of 'search' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:528:4 All declarations of 'species' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:534:4 All declarations of 'split' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:540:4 All declarations of 'toPrimitive' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:546:4 All declarations of 'toStringTag' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:552:4 All declarations of 'unscopables' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:609:4 Subsequent variable declarations must have the same type. Variable '[Symbol.toStringTag]' must be of type '"Math"', but here has type 'string'. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:609:4 All declarations of '[Symbol.toStringTag]' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:613:4 Subsequent variable declarations must have the same type. Variable '[Symbol.toStringTag]' must be of type '"JSON"', but here has type 'string'. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:613:4 All declarations of '[Symbol.toStringTag]' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:628:4 All declarations of 'size' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:634:4 All declarations of 'prototype' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:645:4 All declarations of 'size' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:651:4 All declarations of 'prototype' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:666:4 All declarations of 'prototype' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:680:4 All declarations of 'prototype' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:692:4 All declarations of 'value' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/@types/core-js/index.d.ts:804:4 All declarations of 'prototype' must have identical modifiers. ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/typescript/lib/lib.es2015.core.d.ts:17:13 Duplicate identifier 'PropertyKey'. 

package.json

 { "name": "mz-doc-app", "version": "0.0.0", "license": "MIT", "angular-cli": {}, "scripts": { "start": "ng serve", "lint": "tslint \"src/**/*.ts\"", "test": "ng test", "pree2e": "webdriver-manager update", "e2e": "protractor" }, "private": true, "dependencies": { "@angular/common": "~2.1.0", "@angular/compiler": "~2.1.0", "@angular/core": "~2.1.0", "@angular/forms": "~2.1.0", "@angular/http": "~2.1.0", "@angular/material": "^2.0.0-alpha.9-3", "@angular/platform-browser": "~2.1.0", "@angular/platform-browser-dynamic": "~2.1.0", "@angular/router": "~3.1.0", "@types/core-js": "^0.9.34", "angular-in-memory-web-api": "~0.1.5", "core-js": "^2.4.1", "rxjs": "5.0.0-beta.12", "ts-helpers": "^1.1.1", "zone.js": "^0.6.23" }, "devDependencies": { "@types/jasmine": "^2.2.30", "@types/node": "^6.0.42", "angular-cli": "1.0.0-beta.18", "codelyzer": "1.0.0-beta.1", "jasmine-core": "2.4.1", "jasmine-spec-reporter": "2.5.0", "karma": "1.2.0", "karma-chrome-launcher": "^2.0.0", "karma-cli": "^1.0.1", "karma-jasmine": "^1.0.2", "karma-remap-istanbul": "^0.2.1", "protractor": "4.0.9", "ts-node": "1.2.1", "tslint": "3.13.0", "typescript": "~2.0.3" } } 

Result-of-tree-command

 ├── angular-cli.json ├── e2e ├── karma.conf.js ├── mz-doc-app.sublime-project ├── mz-doc-app.sublime-workspace ├── node_modules ├── package.json ├── protractor.conf.js ├── README.md ├── src └── tslint.json 

tsconfig.json

 { "compileOnSave": false, "compilerOptions": { "declaration": false, "emitDecoratorMetadata": true, "experimentalDecorators": true, "module": "commonjs", "moduleResolution": "node", "outDir": "../dist/out-tsc-e2e", "sourceMap": true, "target": "es5", "typeRoots": [ "../node_modules/@types" ] }, "exclude":[ "node_modules", "typings/main", "typings/main.d.ts" ] } 

请提出一些解决scheme?

所以我升级"target":"es5"时遇到了同样的问题"target":"es5""target":"es6"我通过升级我的tsconfig.json来解决它:

 { "compilerOptions": { "target": "es6", "module": "commonjs", "moduleResolution": "node", "sourceMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "removeComments": false, "noImplicitAny": false } } 

 { "compilerOptions": { "target": "es6", "lib": ["dom", "es5"], "typeRoots": [ "./node_modules/@types" ], "module": "commonjs", "moduleResolution": "node", "sourceMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "removeComments": false, "noImplicitAny": false }, "exclude": [ "node_modules", "dist" ], "compileOnSave": false } 

这个博客文章帮了很多。

这是由相同types定义的多个版本引起的。 在tsconfig.json中我们有es6作为lib数组的一部分,但是我们在node_modules / @types中也有core-js。 core-js中的types定义与已经使用TypeScript分发的types定义重叠。 为了解决这个问题,我们有两个select:

  • 在compilerOptions的lib属性中将es6更改为es5。 这样TypeScript将不包括ES6types定义。
  • 从node_modules中删除core-js。 这样TypeScript将只使用其内部的ES6types定义。

看起来你正在编译node_modules文件夹,所以,在你的tsconfig.json(我认为你有),确保将编译器的排除设置忽略:

 { "compileOnSave": true, "compilerOptions": { <...> }, "exclude": [ "node_modules" ] }