Pourquoi est-ce que je reçois ceci et beaucoup d'autres erreurs de ce genre? J'ajoute un lien au référentiel ainsi que des extraits de code de clé ci-dessous. Je pense avoir un malentendu fondamental sur le fonctionnement de la dépendance et du chaînage "include".
csvproc(master)> tsc
node_modules/TypeScript/bin/lib.core.d.ts(83,5): error TS2300: Duplicate identifier 'configurable'.
node_modules/TypeScript/bin/lib.core.d.ts(84,5): error TS2300: Duplicate identifier 'enumerable'.
node_modules/TypeScript/bin/lib.core.d.ts(85,5): error TS2300: Duplicate identifier 'value'.
node_modules/TypeScript/bin/lib.core.d.ts(86,5): error TS2300: Duplicate identifier 'writable'.
Tous les codes peuvent être trouvés ici .
Mon tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": false,
"outDir": "built/",
"sourceMap": true,
"target": "es5"
}
}
Mon tsd.json:
{
"version": "v4",
"repo": "borisyankov/DefinitelyTyped",
"ref": "master",
"path": "typings",
"bundle": "typings/tsd.d.ts",
"installed": {
"node/node-0.10.d.ts": {
"commit": "6387999eb899d0ba02d37dd8697647718caca230"
},
"should/should.d.ts": {
"commit": "e1182d56ccb192379eade6055d9ba3fb6a0bacc4"
}
}
}
Mes tsd.d.ts:
{
"version": "v4",
"repo": "borisyankov/DefinitelyTyped",
"ref": "master",
"path": "typings",
"bundle": "typings/tsd.d.ts",
"installed": {
"node/node-0.10.d.ts": {
"commit": "6387999eb899d0ba02d37dd8697647718caca230"
},
"should/should.d.ts": {
"commit": "e1182d56ccb192379eade6055d9ba3fb6a0bacc4"
}
}
}
C'est à cause de la combinaison de deux choses:
tsconfig
ne pas avoir de section files
. De http://www.typescriptlang.org/docs/handbook/tsconfig-json.htmlSi aucune propriété "fichiers" n'est présente dans un fichier tsconfig.json, le compilateur utilise par défaut tous les fichiers du répertoire et des sous-répertoires correspondants. Lorsqu'une propriété "fichiers" est spécifiée, seuls ces fichiers sont inclus.
TypeScript
en tant que dépendance npm: node_modules/TypeScript/
Cela signifie que tous les TypeScript
sont inclus .... il existe de toute façon implicitement un lib.d.ts
dans votre projet ( http://basarat.gitbooks.io/TypeScript/content/docs/types /lib.d.ts.html ) et son conflit avec celui fourni avec la version NPM de TypeScript. Listez files
ou include
explicitement https://basarat.gitbooks.io/TypeScript/docs/project/files.html ????
Update: la version 1.0 de Typings a modifié la structure de sortie et la réponse ci-dessous concerne la version antérieure à 1.0.
Si vous utilisez Typings et exclure dans votre tsconfig.json, vous pouvez rencontrer le problème des types de doublons et avoir besoin de quelque chose comme:
{
"exclude": [
"typings/browser.d.ts",
"typings/browser",
"node_modules"
]
}
Pour simplifier l'intégration à TypeScript, deux fichiers sont générés, typings/main.d.ts et typings/browser.d.ts, qui référencent tous les typages installés dans le projet, dont un seul peut être utilisé à la fois.
Ainsi, selon la version dont vous avez besoin, vous devez exclure (ou inclure) les fichiers de type "navigateur" ou "principal", mais pas les deux, car c’est de là que proviennent les doublons.
Cette question de typages en discute plus.
Si vous avez installé des saisies séparément sous le dossier des saisies
{
"exclude": [
"node_modules",
"typings"
]
}
Je viens de rencontrer ce problème. Quand j'ai exécuté npm start
, j'ai eu un tas d'erreurs d'identificateur en double.
SOLUTION:
À partir du dossier racine du projet, exécutez:
rm -r typings
typings install
npm start
et tout fonctionne bien.
Le problème a été résolu simplement:
node_modules
npm install
pour obtenir tous les paquets avec les versions correctesDans mon cas, le problème est survenu après le changement de branches Git, lorsqu'une nouvelle branche utilisait un ensemble différent de modules de nœuds. L'ancienne branche utilisait TypeScript v1.8, la nouvelle v2.0
Vous pouvez également utiliser l'option d'exclusion dans le fichier tsconfig.json comme suit:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"declaration": false,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true
},
"exclude": [
"node_modules"
]
}
Dans mon cas j'ai eu l'erreur comme
node_modules/@types/es6-promise/index.d.ts (11,15): erreur TS2300: identificateur en double 'Promise'.
Et j'avais @types/es6-promise
sur mon package.json mais ma tsconfig
était déjà avec target: "es6"
. Donc, je suppose qu’il ya eu un conflit avec Promise
lors de la compilation.
La suppression de @types/es6-promise
de mon fichier package.json
a résolu le problème.
Utiliser webpack J'ai rencontré la même erreur, au cas où le fichier .d.ts
de votre tsconfig.json et node_modules aurait été résolu:
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts",
"typings/index.d.ts"
]
J'avais ce problème causé par un dossier inattendu sur le disque (jspm_packages
, qui n'est plus utilisé) et qui n'était pas suivi par le contrôle de source (et caché de mon IDE). Cela a eu une installation en double de TypeScript, ce qui a causé les problèmes.
C'est un peu le cas, mais on laisse ici une réponse au cas où quelqu'un d'autre chercherait cette solution.
nous avons supprimé un dossier lib du dossier du site Web. cela a été créé par une précédente installation de dactylographie. cela est devenu un doublon. Quand cela a été enlevé cela a fonctionné!
J'ai eu ce problème et il s'est avéré que j'avais dans mon projet un deuxième dossier node_modules qui n'était pas supposé être là :-(
Cela peut être dû au fait que vous avez entré à la fois dans votre dossier de nœuds la saisie et la dépendance .. donc, vérifiez d’abord ce que vous avez dans votre dossier @types et si vous les avez dans les dépendances, supprimez le doublon . Pour moi c’était fondamental. js
J'ai eu cette erreur, avec d'autres, après avoir modifié mon tsconfig.json en ciblant: "es2015" et le module: "es2015".
La base (AngularJS2 quickstart) utilisait /// <reference path="../../typings/index.d.ts" />
dans le fichier main.ts. Pour résoudre ce problème, je devais supprimer cette ligne.
supprimez ce @ types/express-validator du fichier package.json, puis exécutez npm install
Message d'auteur: Ce paquet est obsolète Il s'agit d'une définition de types de stub pour express-validator ( https://github.com/ctavan/express-validator ). express-validator fournit ses propres définitions de types, vous n'avez donc pas besoin d'installer @ types/express-validator!