2016-10-31 4 views
5

Я создаю приложение angular2, используя angular-cli. angular-in-memory-web-api не был установлен по умолчанию.Angular2 Повторяющийся идентификатор 'PropertyKey'

Так что я искал его и добавил эту строку "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" 

    ] 
} 

Просьба предложить какое-то решение?

+0

У вас есть папка с образцами с папкой 'node' внутри? Я думаю, что devDependencies '@ types/node' и этот' node' внутри 'typings' могут вызвать проблему. (Из моего прошлого опыта).Удалите его в папке npm_modules и devDependencies (поскольку вы можете вернуться) и сообщите нам, что произойдет. – Searching

ответ

0

Похоже, вы компилируете в папке node_modules, поэтому в вашем tsconfig.json (что я полагаю, у вас есть), убедитесь, чтобы установить свои исключения для компилятора игнорировать:

{ 
    "compileOnSave": true, 
    "compilerOptions": { 
    <...> 
    }, 
    "exclude": [ 
    "node_modules" 
    ] 
} 
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, но у нас также есть core-js в типах node_modules/@. Определения типов в core-js перекрываются с теми, которые уже распространяются с помощью TypeScript. Для того, чтобы решить эту проблему, у нас есть два варианта:

  • Изменить ES6 для ES5 в Lib собственности compilerOptions'S. Этот путь ТипScript не будет содержать определения типа ES6.
  • Удалить core-js из node_modules. Таким образом, TypeScript будет использовать только свои внутренние определения ES6 типа .