Angular2 Duplicate identifier 'PropertyKey'

I am creating an angular2 application using angular-cli . angular-in-memory-web-api not been installed by default.

So, I searched for it and added this line "angular-in-memory-web-api": "~0.1.5" to my package.json file. And did npm install .

After that I came up with this error Cannot find type definition file for 'core-js' #90 . I found a solution in this Github question .

So, I npm install --save @types/core-js this command npm install --save @types/core-js as suggested by github-question . Now I am facing this error.

 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" ] } 

Please suggest some solution?

+5
source share
2 answers

So, I ran into this problem when updating "target":"es5" to "target":"es6" I fixed it by updating tsconfig.json:

WITH

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

For

 { "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 } 

This blog article article really helped.

This is caused by multiple versions of definitions of the same type. In tsconfig.json, we have es6 as part of the lib array, but we also have core-js in node_modules / @ types. Type definitions in core-js overlap those that are already distributed using TypeScript. To fix this problem, we have two options:

  • Change es6 to es5 in the compilerOptionss lib property. TypeScript will not include ES6 type definitions here.
  • Remove core-js from node_modules. Thus, TypeScript will only use its internal type ES6 definitions.
+2
source

It seems that you are compiling into the node_modules folder, so in your tsconfig.json (I suppose you have it) make sure that you throw exceptions for the compiler:

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

Source: https://habr.com/ru/post/1259028/


All Articles