Definitelytyped: @types/node , Impossible de compiler : node_modules/@types/node/index.d.ts(50,14): erreur TS2687: Toutes les déclarations de 'iterator' doivent avoir des modificateurs identiques.

Créé le 10 mars 2017  ·  41Commentaires  ·  Source: DefinitelyTyped/DefinitelyTyped

Depuis 7.0.8, lors de l'utilisation

node_modules/@types/node/index.d.ts (50,14) : erreur TS2687 : toutes les déclarations de 'iterator' doivent avoir des modificateurs identiques.

Notre tsconfig :

{ "compilerOptions": { "target": "es5", "module": "amd", "sourceMap": true, "strictNullChecks": true, "noImplicitAny": false, "noImplicitReturns": true, "noImplicitThis": false, "noUnusedParameters": false, "noUnusedLocals": true, "experimentalDecorators": false, "emitDecoratorMetadata": false, "removeComments": true, "outFile": "../js/ts.js" }, "exclude": [ "node_modules", "../node_modules", "../../node_modules" ] }

Les conflits se situent entre @types/node ligne 50 et @types/core-js, ligne 504 (iterator:Symbol)

Commentaire le plus utile

@harrietsCreativeDabblets, vous devriez pouvoir inclure les éléments suivants dans les devDependencies de votre projet (dans les ng-start/package.json ):

"@types/node": "7.0.7"

Puisque cela satisfait le jspm-config semver, cela garantira que votre version de @types/node est verrouillée sur 7.0.7 . Notez que si cela ne satisfaisait pas le jspm-config semver, vous vous retrouveriez avec des définitions en double.

Assurez-vous de supprimer vos node_modules et npm i après avoir modifié vos projets package.json.

Tous les 41 commentaires

Même problème pour moi aussi. tsconfig :
{ "compilerOptions": { "allowJs": false, "target": "es5", "module": "commonjs", "moduleResolution": "node", "allowSyntheticDefaultImports": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "sourceMap": true, "noEmitHelpers": true, "noUnusedLocals": true, "noImplicitReturns": true, "noUnusedParameters": true, "baseUrl": ".", "paths": { "app": [ "src/app" ], "app/*": [ "src/app/*" ], "core": [ "src/core" ], "core/*": [ "src/core/*" ] }, "typeRoots": [ "node_modules/@types" ] }, "compileOnSave": false, "buildOnSave": false, "exclude": [ "node_modules" ] }

De toute évidence, le modificateur readonly avant iterator , était une erreur. Ou core-js est faux.

Même problème ici, tous mes builds se sont cassés du jour au lendemain.
notre tsconfig

{
  "compilerOptions": {
    "target": "ES5",
    "sourceMap": true,
    "typeRoots": [ "node_modules/@types/" ],
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "declaration": false,
    "watch": true
  },
  "compileOnSave": true,
  "include": [
    "src/**/*"
  ],
  "exclude": [
    ".vscode",
    "node_modules",
    "dist"
  ]
}

Ayant également ce problème. Nous avons corrigé notre version @types/node à 7.0.7 pour le moment, qui fonctionne toujours. Publier ici principalement pour suivre le problème.

Nous avons également ce même problème. Tout a cassé.

+1 même problème.

Exactement la même chose ici.

Pareil ici,
temporairement épinglé à 7.0.7.

+1 pareil

J'ai le même problème.
Revenir à @types/node": "7.0.7" résout le problème

fonctionne pour moi maintenant en supprimant core-js et en utilisant @types/ [email protected] et tsconfig : "lib": ["es7"]

Pareil ici. Revenez à @types/node" : « 7.0.7 » résout le problème. Marqué pour suivre la progression.

Devrait être corrigé par #15108. Notez que vous devrez peut-être modifier "lib" dans votre tsconfig car des types tels que Iterator ne sont plus fournis par core-js .

@andy-ms, que proposez-vous pour remplacer "lib" ?

@baywet Ce que devrait être lib dépend de votre projet. Par exemple, mon projet se compile sur ES5 mais a besoin de core-js pour polyremplir certaines fonctionnalités ES6. C'est mon lib :

"lib": [
  "es6"
  "dom"
]

Consultez --lib dans la documentation sur les options du

quel fichier dois-je modifier exactement la version de @types/node": "7.0.7" ?
Une recherche dans le répertoire révèle que j'ai 2 entrées de ce type :

image

lequel dois-je changer ou dois-je changer les deux ?

Ceux-ci sont tous les deux dans node_modules , ils ne sont donc vraisemblablement pas archivés et ne peuvent pas être modifiés directement. L'outil d'installation que vous utilisez (par exemple npm ou jspm ) doit avoir une documentation décrivant comment installer les packages et définir leurs versions.
Mais comme l'indique la discussion ci-dessus, il est préférable d'utiliser les versions les plus récentes de toutes les bibliothèques et de définir correctement --lib dans votre tsconfig.json .

Une installation correcte aura une version avec ^ comme premier caractère dans package.json (s), afin d'obtenir la dernière version. Concernant les problèmes @types et libs en général comme celui mentionné ici, une fois qu'il est corrigé, supprimez d'abord tous les répertoires node_modules (chemin principal du projet, chemin des clients, etc.), puis installez npm dans chaque répertoire concerné, puis relancez tsc ( généralement avec un grunt ou un fichier de construction équivalent), pour vérifier que tout va bien.
Dans les environnements de pré-production et de production, vous devrez peut-être faire la même chose.

@harrietsCreativeDabblets, vous devriez pouvoir inclure les éléments suivants dans les devDependencies de votre projet (dans les ng-start/package.json ):

"@types/node": "7.0.7"

Puisque cela satisfait le jspm-config semver, cela garantira que votre version de @types/node est verrouillée sur 7.0.7 . Notez que si cela ne satisfaisait pas le jspm-config semver, vous vous retrouveriez avec des définitions en double.

Assurez-vous de supprimer vos node_modules et npm i après avoir modifié vos projets package.json.

@pe8ter Merci pour la précision. J'ai fini par passer à @types/ node @

"lib": [
      "dom",
      "dom.iterable",
      "es2015",
      "scripthost"
    ],

Même problème ici ; résolu avec la rétrogradation de la version 7.0.7

Même problème ici ; résolu avec la rétrogradation de la version 7.0.7

Il ne semble pas que cela ait été résolu, et utiliser la version 7.0.7 pour toujours n'est pas logique. De plus, épingler les versions n'a pas résolu le problème pour moi. Rien dans ce fil n'a.

@loctrice Quelle est votre version TypeScript à partir de node_modules/typescript/package.json et la version node à partir de node_modules/@types/node/package.json ?

le script dactylographié est 2.3.4 et le nœud est 8.0.5

@loctrice Je ne peux pas reproduire cela avec ces versions. Je suis dans un répertoire vide et je viens de les installer. Qu'y a-t-il dans votre tsconfig ? Pouvez-vous essayer d'obtenir une petite reproduction?
Au fait, vouliez-vous dire 8.0.50 au lieu de 8.0.5 ? Testé avec les deux et je n'ai pas eu d'erreur.

Je ne suis pas sûr de ce que devrait être mon tsconfig. Je me suis penché là-dessus après la mise à niveau des anciennes saisies vers @types, donc je l'ai modifié en fonction des threads que j'ai vus, juste pour voir si quelque chose fonctionne. C'est ma dernière erreur, et avant plus tôt dans la journée, je n'avais pas du tout saisi de bibliothèque. Rien de ce que j'ai ajouté n'a eu d'effet :

{
"Options du compilateur": {
"cible": "es5",
"module": "système",
"moduleResolution": "nœud",
"sourceMap": faux,
"emitDecoratorMetadata": vrai,
"experimentalDecorators": vrai,
"removeComments": vrai,
"noImplicitAny": faux,
"typeRacines": [
"./node_modules/@types"
],
"lib": [
"es2015",
"es6",
"dom",
"dom.itérable"
]
},

Je ne peux pas reproduire une erreur avec ces versions installées et ce tsconfig.json .

  • mkdir repro; reproduction de cd`
  • collez ce contenu dans tsconfig.json (et ajoutez la fin } )
  • npm install @types/[email protected] [email protected]
  • echo "" > a.ts
  • node node_modules/typescript/lib/tsc.js
  • Pas d'erreur

Cela m'aide à démarrer le dépannage. Je vais commencer à ajouter mes saisies une à la fois pour voir où se situe le problème dans mon projet angular2.

il semble que cela puisse être causé par les typages core-js et es6 que j'avais installés. Si je supprime core-js, j'obtiens des erreurs de fonctionnalités telles que "Promise is a type" que j'ai corrigées hier en épinglant la version de core-js à 0.9.35. Voici mes frappes :

chai : "^4.0.4",
core-js : "0.9.35",
nœud : "^8.0.50",
openlayers : "^4.1.0",
systemjs : "^0.20.6",

Il semble que le conflit soit dû au fait que dans core-js à la ligne 504, il existe une définition pour iterator: symbol et dans les saisies de nœuds à la ligne 54, il existe une définition de readonly iterator: symbol changeant l'un ou l'autre manuellement en match fera compiler mon projet.

J'essaie de mettre à jour et de faire fonctionner angular2-electron-boilerplate . J'obtiens cette erreur :

node_modules/@types/node/index.d.ts(79,14): error TS2687: All declarations of 'iterator' must have identical modifiers.

79     readonly iterator: symbol;
                ~~~~~~~~
phil<strong i="9">@Loki</strong> ~/d/g/s/g/o/angular2-electron-boilerplate (master) [130]> 
grep -rnE 'iterator:\s+symbol' node_modules/
node_modules//@types/node/index.d.ts:79:    readonly iterator: symbol;
node_modules//typescript/lib/lib.es2015.iterable.d.ts:28:    readonly iterator: symbol;
node_modules//typescript/lib/lib.es6.d.ts:4763:    readonly iterator: symbol;
node_modules//reflect-metadata/Reflect.ts:95:    declare const Symbol: { iterator: symbol, toPrimitive: symbol };

Versions :

@philipbel as -tu

Existe-t-il une solution permanente au problème décrit par @loctrice ?

Non, je ne l'ai pas fait.

Le 2 janvier 2018, à 2:11, Smackzter [email protected] a écrit :

@philipbel as -tu

-
Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, affichez-le sur GitHub ou coupez le fil de discussion.

@philipbel On dirait que le problème est dans reflect-metadata . Curieux de savoir comment vous avez fini par compiler avec Reflect.ts au lieu de Reflect.d.ts .

@loctrice en

essayé avec @ types/ [email protected] a bien fonctionné

@thanhngvpt Je ne contribue pas à ce projet, je ne peux donc pas fournir de solution. J'ai finalement été obligé de mettre à niveau mon projet, et avec cela la plupart des packages, et tout semblait bien.

Pour résoudre ce

npm i [email protected] --save

Ma construction est cassée de nulle part !! Ce problème est toujours affiché.

mon env

Ionic:

   Ionic CLI          : 5.2.3 (C\\\\node_modules\ionic)
   Ionic Framework    : ionic-angular 3.9.5
   @ionic/app-scripts : 3.2.2

Cordova:

   Cordova CLI       : 8.0.0
   Cordova Platforms : android 8.0.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 20 other plugins)

Utility:

   cordova-res : 0.8.1
   native-run  : 1.0.0

System:

   Android SDK Tools : 26.1.1 (C:\\\\AppData\Local\Android\Sdk)
   NodeJS            : v10.15.3 (C:\Program Files\nodejs\node.exe)
   npm               : 6.4.1
   OS                : Windows 10
Typescript is 2.5

Oui, rien de ce que je fais ne semble résoudre ce problème. Je n'ai pas lib définition de tsconfig.json et je suis complètement déconcerté par les informations fournies dans ce fil. Voici mon fichier tsconfig.json :

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "moduleResolution": "node",
        "rootDir": "src",
        "outDir": "out",
        "forceConsistentCasingInFileNames": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "pretty": true,
        "declaration": true
    }
}

Que dois-je faire exactement à ce sujet pour arrêter de produire les erreurs de compilateur suivantes sur lesquelles je n'ai absolument aucun contrôle ?

node_modules/vscode/vscode.d.ts:534:3 - error TS2687: All declarations of 'textEditor' must have identical modifiers.

534     textEditor: TextEditor;
        ~~~~~~~~~~

node_modules/vscode/vscode.d.ts:8363:3 - error TS2687: All declarations of 'body' must have identical modifiers.

8363    body?: any;
        ~~~~

Dépendances :

"devDependencies": {
  "@types/node": "^8.10.59",
  "@types/vscode": "^1.1.36",
  "rimraf": "^3.0.0",
  "tslint": "^5.20.1",
  "tslint-config-xo": "^2.0.0",
  "typescript": "^3.7.4",
  "vscode": "^1.1.36"
}

Il semble que l'ajout de "skipLibCheck": true à mon tsconfig.json supprimé les erreurs du compilateur. Cependant, je ne suis pas sûr que ce soit une bonne idée de ne pas effectuer de vérification de type par rapport aux bibliothèques utilisées.

{
    "compilerOptions": {
        "skipLibCheck": true
    }
}
Cette page vous a été utile?
0 / 5 - 0 notes