Definitelytyped: @types/core-js est en conflit avec typescript/lib/lib.es6.d.ts lorsque @types/core-js n'est pas réellement utilisé

Créé le 4 oct. 2016  ·  12Commentaires  ·  Source: DefinitelyTyped/DefinitelyTyped

Un référentiel de reproduction simple : https://github.com/plantain-00/test , après npm i && npm run build , l'erreur est :

node_modules/@types/core-js/index.d.ts(21,14): error TS2300: Duplicate identifier 'PropertyKey'.
node_modules/typescript/lib/lib.es6.d.ts(4133,14): error TS2300: Duplicate identifier 'PropertyKey'.

Attendu : pas d'erreur, car le app.ts est vide. le @types/core-js est utilisé dans static/app.ts .

  "devDependencies": {
    "@types/core-js": "^0.9.34",
    "core-js": "^2.4.1",
    "typescript": "^2.0.3"
  }
@types

Commentaire le plus utile

eu le même problème. Ajout de "skipLibCheck": true à compilerOptions dans mon tsconfig.json et ensuite aidé

Tous les 12 commentaires

Quelle partie de core-js est nécessaire qui n'est pas incluse dans lib.es6 ? Ne pourriez-vous tout simplement pas installer @types/core-js ?

@aciccarello core-js et @types/core-js est utilisé par le frontend dans static/app.ts , cette partie fonctionne bien

Il y a 2 tsconfig.json , un pour le backend (es6, l'erreur se produit ici), et l'autre pour le frontend (es5, aucune erreur, fonctionne bien),

@plantain-00 Avez-vous compris cela?
J'ai un problème similaire, où je veux utiliser certaines des fonctionnalités non standard de core-js (Dictionnaires), mais les types sont en conflit avec la bibliothèque de typescripts.

@jefbarn Pour les fonctionnalités non standard, je n'ai pas de solution.
Pour les fonctionnalités standard, j'ai désinstallé @types/core-js et supprimé import "core-js"; , car core-js est un polyfill de ES2015+, donc je peux utiliser typescript/lib/lib.es6.d.ts place, le tsconfig.json ressemble à:

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "lib": [
            "es2015",
            "es5",
            "dom",
            "scripthost"
        ]
    }
}

Il semble que ce problème soit toujours nécessaire, je vais le rouvrir.

J'ai ce problème en utilisant @types\core-js et en ciblant ES6

@anorborg J'ai réussi à faire fonctionner ma situation en utilisant quelque chose comme ceci :

  "compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "moduleResolution": "node",
    "lib": ["es5", "dom"],
    ...
  }

@jefbarn qui a fonctionné. Fondamentalement, les bibliothèques core-js et typescript 2.x es6.d.ts sont en conflit et cela indique à typescript de ne pas utiliser son es6.d.ts . Je pense que la solution la plus pure consiste à créer des définitions de type de module pour core-js (c'est- core-js-es6-object dire core-js . J'ai essayé de démarrer cela localement, mais je n'ai pas pu faire fonctionner les types personnalisés locaux. Si j'ai le temps, j'essaierai de comprendre et de créer un PR pour tous les modules.

Attirez l'attention.

Je viens de créer un nouveau projet avec tsc 2.2.0 utilisant cette configuration ts :

{
  "compilerOptions": {
    "outDir": "./build/",
    "rootDir": "./src/",
    "baseUrl": ".",
    "sourceMap": true,
    "noImplicitAny": false,
    "module": "commonjs",
    "target": "es6"
  },
  "include": [
    "./src/**/*.ts"
  ],
  "compileOnSave": false
}

Ce qui produirait ces erreurs :

node_modules/@types/core-js/index.d.ts(21,14): error TS2300: Duplicate identifier 'PropertyKey'.
node_modules/@types/core-js/index.d.ts(85,5): error TS2687: All declarations of 'name' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(145,5): error TS2403: 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'.
node_modules/@types/core-js/index.d.ts(262,5): error TS2687: All declarations of 'flags' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(276,5): error TS2687: All declarations of 'EPSILON' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(311,5): error TS2687: All declarations of 'MAX_SAFE_INTEGER' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(318,5): error TS2687: All declarations of 'MIN_SAFE_INTEGER' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(457,5): error TS2403: Subsequent variable declarations must have the same type.  Variable '[Symbol.toStringTag]' must be of type '"Symbol"', but here has type 'string'.
node_modules/@types/core-js/index.d.ts(457,5): error TS2687: All declarations of '[Symbol.toStringTag]' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(464,5): error TS2687: All declarations of 'prototype' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(492,5): error TS2687: All declarations of 'hasInstance' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(498,5): error TS2687: All declarations of 'isConcatSpreadable' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(504,5): error TS2687: All declarations of 'iterator' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(510,5): error TS2687: All declarations of 'match' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(516,5): error TS2687: All declarations of 'replace' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(522,5): error TS2687: All declarations of 'search' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(528,5): error TS2687: All declarations of 'species' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(534,5): error TS2687: All declarations of 'split' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(540,5): error TS2687: All declarations of 'toPrimitive' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(546,5): error TS2687: All declarations of 'toStringTag' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(552,5): error TS2687: All declarations of 'unscopables' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(609,5): error TS2403: Subsequent variable declarations must have the same type.  Variable '[Symbol.toStringTag]' must be of type '"Math"', but here has type 'string'.
node_modules/@types/core-js/index.d.ts(609,5): error TS2687: All declarations of '[Symbol.toStringTag]' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(613,5): error TS2403: Subsequent variable declarations must have the same type.  Variable '[Symbol.toStringTag]' must be of type '"JSON"', but here has type 'string'.
node_modules/@types/core-js/index.d.ts(613,5): error TS2687: All declarations of '[Symbol.toStringTag]' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(628,5): error TS2687: All declarations of 'size' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(634,5): error TS2687: All declarations of 'prototype' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(645,5): error TS2687: All declarations of 'size' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(651,5): error TS2687: All declarations of 'prototype' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(656,11): error TS2428: All declarations of 'WeakMap' must have identical type parameters.
node_modules/@types/core-js/index.d.ts(664,27): error TS2344: Type 'K' does not satisfy the constraint 'object'.
node_modules/@types/core-js/index.d.ts(665,53): error TS2344: Type 'K' does not satisfy the constraint 'object'.
node_modules/@types/core-js/index.d.ts(666,5): error TS2687: All declarations of 'prototype' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(680,5): error TS2687: All declarations of 'prototype' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(692,5): error TS2687: All declarations of 'value' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(804,5): error TS2687: All declarations of 'prototype' must have identical modifiers.
node_modules/typescript/lib/lib.es6.d.ts(4199,14): error TS2300: Duplicate identifier 'PropertyKey'.

Changer la cible en es5 donne une version propre.

Je ne sais pas comment cette question a reçu si peu d'attention ; sûrement beaucoup de gens essaient de cibler ES6 avec TS et se heurteraient également à cela?

@wyqydsyq core.js et ES6 définissent tous deux les mêmes définitions. N'incluez pas @types/core.js ou définissez "lib": ["es5", "dom"], dans votre tsconfig

Je reçois également le même genre de conflit.

1>c:\Program Files (x86)\Microsoft SDKs\TypeScript\2.6\lib.es2015.iterable.d.ts(203,11) : erreur TS2300 : Build : Duplicate identifier 'Promise'.1>c:\Program Files (x86)\Microsoft SDKs\TypeScript\2.6\lib.es2015.promise.d.ts(223,13): erreur TS2300: Build:Duplicate identifier 'Promise'.1>c:\Program Files (x86)\Microsoft SDKs\TypeScript\2.6\lib.es2015.symbol.wellknown.d.ts(168,11) : erreur TS2300 : Build:Duplicate identifier 'Promise'.1>c:\Program Files (x86)\Microsoft SDKs\TypeScript\2.6\lib.es5.d.ts(1292,11) : erreur TS2300 : Build:Duplicate identifier 'Promise'.1>c:\users\username\node_modules\@types\es6-promise\index.d.ts(11,15): erreur TS2300: Build:Duplicate identifier 'Promise'.1>c:\users\username\node_modules\@types\es6-promise\index.d.ts(42,19): erreur TS2300: Build:Duplicate identifier 'Promise'.

tsconfig : -

{
"Options du compilateur": {
"cible": "es5",
"module": "commonjs",
"moduleResolution": "nœud",
"sourceMap": vrai,
"emitDecoratorMetadata": vrai,
"experimentalDecorators": vrai,
"lib": [ "es2015", "dom" ],
"noImplicitAny": vrai,
"suppressImplicitAnyIndexErrors": vrai,
"noStrictGenericChecks": vrai
}
}

Paquet.Json :

{
  "name": "angular-quickstart",
  "version": "1.0.0",
  "description": "QuickStart package.json from the documentation, supplemented with testing support",
  "scripts": {
    "build": "tsc -p src/",
    "build:watch": "tsc -p src/ -w",
    "build:e2e": "tsc -p e2e/",
    "serve": "lite-server -c=bs-config.json",
    "serve:e2e": "lite-server -c=bs-config.e2e.json",
    "prestart": "npm run build",
    "start": "concurrently \"npm run build:watch\" \"npm run serve\"",
    "pree2e": "npm run build:e2e",
    "e2e": "concurrently \"npm run serve:e2e\" \"npm run protractor\" --kill-others --success first",
    "preprotractor": "webdriver-manager update",
    "protractor": "protractor protractor.config.js",
    "pretest": "npm run build",
    "test": "concurrently \"npm run build:watch\" \"karma start karma.conf.js\"",
    "pretest:once": "npm run build",
    "test:once": "karma start karma.conf.js --single-run",
    "lint": "tslint ./src/**/*.ts -t verbose"
  },
  "keywords": [],
  "author": "",
  "license": "MIT",
  "dependencies": {
    "@angular/common": "~4.3.4",
    "@angular/compiler": "~4.3.4",
    "@angular/core": "~4.3.4",
    "@angular/forms": "~4.3.4",
    "@angular/http": "~4.3.4",
    "@angular/platform-browser": "~4.3.4",
    "@angular/platform-browser-dynamic": "~4.3.4",
    "@angular/router": "~4.3.4",
    "angular-in-memory-web-api": "~0.3.0",
    "systemjs": "0.19.40",
    "core-js": "^2.4.1",
    "rxjs": "5.0.1",
    "zone.js": "^0.8.4"
  },
  "devDependencies": {
    "concurrently": "^3.2.0",
    "lite-server": "^2.2.2",
    "typescript": "2.6.0",
    "canonical-path": "0.0.2",
    "tslint": "^3.15.1",
    "lodash": "^4.16.4",
    "jasmine-core": "~2.4.1",
    "karma": "^1.3.0",
    "karma-chrome-launcher": "^2.0.0",
    "karma-cli": "^1.0.1",
    "karma-jasmine": "^1.0.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~4.0.14",
    "rimraf": "^2.5.4",
    "@types/node": "^6.0.46",
    "@types/jasmine": "2.5.36"
  },
  "repository": {}
}

npm 5.5.1
nœud 8.9.1

Une solution de contournement ?

eu le même problème. Ajout de "skipLibCheck": true à compilerOptions dans mon tsconfig.json et ensuite aidé

salut

./node_modules/@types/core-js/index.d.ts:1461:36 - erreur TS2339 : la propriété 'for' n'existe pas sur le type 'SymbolConstructor'.

1461 const _for: typeof core.Symbol.for;
~~~

../node_modules/@types/core-js/index.d.ts:1465:43 - erreur TS2339 : la propriété 'hasInstance' n'existe pas sur le type 'SymbolConstructor'.

1465 const hasInstance : typeof core.Symbol.hasInstance ;
~ ~ ~

../node_modules/@types/core-js/index.d.ts:1469:50 - erreur TS2339 : la propriété 'isConcatSpreadable' n'existe pas sur le type 'SymbolConstructor'.

1469 const isConcatSpreadable : type de noyau.Symbol.isConcatSpreadable ;
~ ~ ~ ~~~

../node_modules/@types/core-js/index.d.ts:1477:38 - erreur TS2339 : la propriété 'keyFor' n'existe pas sur le type 'SymbolConstructor'.

1477 const keyFor: typeof core.Symbol.keyFor;
~ ~

../node_modules/@types/core-js/index.d.ts:1481:37 - erreur TS2339 : la propriété 'match' n'existe pas sur le type 'SymbolConstructor'.

1481 const match : typeof core.Symbol.match ;
~

../node_modules/@types/core-js/index.d.ts:1485:39 - erreur TS2339 : la propriété 'replace' n'existe pas sur le type 'SymbolConstructor'.

1485 const replace: typeof core.Symbol.replace;
~ ~~

../node_modules/@types/core-js/index.d.ts:1489:38 - erreur TS2339 : la propriété 'search' n'existe pas sur le type 'SymbolConstructor'.

1489 recherche const : typeof core.Symbol.search ;
~ ~

../node_modules/@types/core-js/index.d.ts:1493:39 - erreur TS2339 : la propriété 'species' n'existe pas sur le type 'SymbolConstructor'.

1493 espèces const: typeof core.Symbol.species;
~ ~~

../node_modules/@types/core-js/index.d.ts:1497:37 - erreur TS2339 : la propriété 'split' n'existe pas sur le type 'SymbolConstructor'.

1497 const split : typeof core.Symbol.split ;
~

../node_modules/@types/core-js/index.d.ts:1501:43 - erreur TS2339 : la propriété 'toPrimitive' n'existe pas sur le type 'SymbolConstructor'.

1501 const toPrimitive: typeof core.Symbol.toPrimitive;
~ ~ ~

../node_modules/@types/core-js/index.d.ts:1505:43 - erreur TS2339 : la propriété 'toStringTag' n'existe pas sur le type 'SymbolConstructor'.

1505 const toStringTag: typeof core.Symbol.toStringTag;
~ ~ ~

../node_modules/@types/core-js/index.d.ts:1509:43 - erreur TS2339 : la propriété 'unscopables' n'existe pas sur le type 'SymbolConstructor'.

1509 const unscopables: typeof core.Symbol.unscopables;
~ ~ ~

../node_modules/@types/core-js/index.d.ts:2272:36 - erreur TS2339 : la propriété 'for' n'existe pas sur le type 'SymbolConstructor'.

2272 const _for: typeof core.Symbol.for;
~~~

../node_modules/@types/core-js/index.d.ts:2276:43 - erreur TS2339 : la propriété 'hasInstance' n'existe pas sur le type 'SymbolConstructor'.

2276 const hasInstance : typeof core.Symbol.hasInstance ;
~ ~ ~

../node_modules/@types/core-js/index.d.ts:2280:50 - erreur TS2339 : la propriété 'isConcatSpreadable' n'existe pas sur le type 'SymbolConstructor'.

2280 const isConcatSpreadable : type de noyau.Symbol.isConcatSpreadable ;
~ ~ ~ ~~~

../node_modules/@types/core-js/index.d.ts:2288:38 - erreur TS2339 : la propriété 'keyFor' n'existe pas sur le type 'SymbolConstructor'.

2288 const keyFor: typeof core.Symbol.keyFor;
~ ~

../node_modules/@types/core-js/index.d.ts:2292:37 - erreur TS2339 : la propriété 'match' n'existe pas sur le type 'SymbolConstructor'.

2292 const match : typeof core.Symbol.match ;
~

../node_modules/@types/core-js/index.d.ts:2296:39 - erreur TS2339 : la propriété 'replace' n'existe pas sur le type 'SymbolConstructor'.

2296 const remplacer: typeof core.Symbol.replace;
~ ~~

../node_modules/@types/core-js/index.d.ts:2300:38 - erreur TS2339 : la propriété 'search' n'existe pas sur le type 'SymbolConstructor'.

2300 const recherche : typeof core.Symbol.search ;
~ ~

../node_modules/@types/core-js/index.d.ts:2304:39 - erreur TS2339 : la propriété 'species' n'existe pas sur le type 'SymbolConstructor'.

2304 espèces const: typeof core.Symbol.species;
~ ~~

../node_modules/@types/core-js/index.d.ts:2308:37 - erreur TS2339 : la propriété 'split' n'existe pas sur le type 'SymbolConstructor'.

2308 const split: typeof core.Symbol.split;
~

../node_modules/@types/core-js/index.d.ts:2312:43 - erreur TS2339 : la propriété 'toPrimitive' n'existe pas sur le type 'SymbolConstructor'.

2312 const toPrimitive: typeof core.Symbol.toPrimitive;
~ ~ ~

../node_modules/@types/core-js/index.d.ts:2316:43 - erreur TS2339 : la propriété 'toStringTag' n'existe pas sur le type 'SymbolConstructor'.

2316 const toStringTag: typeof core.Symbol.toStringTag;
~ ~ ~

../node_modules/@types/core-js/index.d.ts:2320:43 - erreur TS2339 : la propriété 'unscopables' n'existe pas sur le type 'SymbolConstructor'.

2320 const unscopables : type de noyau.Symbole.unscopables ;
~ ~ ~

C'est l'erreur que j'obtiens

mon tsconfig
{
"compileOnSave": faux,
"Options du compilateur": {
"baseUrl": "",
"outDir": "./dist/out-tsc",
"sourceMap": vrai,
"déclaration": faux,
"downlevelIteration": vrai,
"experimentalDecorators": vrai,
"module": "es6",
"moduleResolution": "nœud",
"importHelpers": vrai,
"cible": "es5",
"typeRacines": [
"node_modules/@types"
],
"lib": [
"es5",
"es2015",
"es2017",
"dom",
"scripthost"
],
},
"angularCompilerOptions": {
"fullTemplateTypeCheck": vrai,
"strictInjectionParameters": true
}
}
aidez moi a resoudre le probleme

Cette page vous a été utile?
0 / 5 - 0 notes