Angular2重复标识符' PropertyKey'

时间:2016-10-31 10:03:43

标签: javascript node.js angular typescript npm

我正在使用angular2构建angular-cli应用程序。默认情况下未安装angular-in-memory-web-api

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

在此之后,我遇到了这个错误Cannot find type definition file for 'core-js' #90。我在Github-question找到了解决方案。

所以我按npm install --save @types/core-js的建议运行了此命令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"

  ]
}

请建议一些解决方案?

2 个答案:

答案 0 :(得分:2)

因此,在将"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
}

blog article给了很多帮助。

  

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

     
      
  • 在compilerOptions的lib属性中将es6更改为es5。这条路   TypeScript不包含ES6类型定义。
  •   
  • 从中删除core-js   node_modules。这样TypeScript将仅使用其内部ES6类型   定义
  •   

答案 1 :(得分:0)

好像你正在编译node_modules文件夹,因此,在你的tsconfig.json中(我猜你有)确保为编译器设置排除项以忽略:

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