Definitelytyped: @types/node , Tidak dapat dikompilasi: node_modules/@types/node/index.d.ts(50,14): error TS2687: Semua deklarasi 'iterator' harus memiliki pengubah yang identik.

Dibuat pada 10 Mar 2017  ·  41Komentar  ·  Sumber: DefinitelyTyped/DefinitelyTyped

Sejak 7.0.8, saat menggunakan

node_modules/@types/node/index.d.ts(50,14): error TS2687: Semua deklarasi 'iterator' harus memiliki pengubah yang identik.

tsconfig kami:

{ "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" ] }

Konflik antara @types/node line 50 dan @types/core-js, line 504 (iterator:Simbol)

Komentar yang paling membantu

@harrietsCreativeDabblets Anda harus dapat memasukkan yang berikut ini dalam devDependencies proyek Anda (dalam ng-start/package.json ):

"@types/node": "7.0.7"

Karena ini memenuhi jspm-config semver itu akan memastikan versi @types/node dikunci ke 7.0.7 . Perhatikan bahwa jika ini tidak memenuhi semver jspm-config , Anda akan berakhir dengan definisi duplikat.

Pastikan Anda menghapus node_modules dan npm i setelah memodifikasi package.json proyek Anda.

Semua 41 komentar

Masalah yang sama untuk saya juga. 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" ] }

Jelas readonly pengubah sebelum iterator , adalah sebuah kesalahan. Atau core-js salah.

Masalah yang sama di sini, semua build saya rusak dalam semalam.
tsconfig kami

{
  "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"
  ]
}

Juga memiliki masalah ini. Kami telah memperbaiki versi @types/node kami ke 7.0.7 untuk saat ini, yang masih berfungsi. Posting di sini terutama untuk melacak masalah.

Kami juga mengalami masalah yang sama. Rusak semuanya.

+1 masalah yang sama.

Hal yang sama persis di sini.

Sama disini,
sementara disematkan ke 7.0.7.

+1 sama

saya memiliki masalah yang sama.
Beralih kembali ke @types/node": "7.0.7" memperbaiki masalah

bekerja untuk saya sekarang dengan menghapus core-js dan menggunakan @types/ [email protected] dan tsconfig: "lib": ["es7"]

Sama disini. Beralih kembali ke @types/node": "7.0.7" memperbaiki masalah. Ditandai untuk melacak kemajuan.

Harus diperbaiki dengan #15108. Perhatikan bahwa Anda mungkin perlu mengubah "lib" di tsconfig Anda karena tipe seperti Iterator tidak lagi disediakan oleh core-js .

@andy-ms apa yang Anda sarankan agar kami mengubah "lib" menjadi ?

@baywet Berapa lib seharusnya tergantung pada proyek Anda. Misalnya proyek saya mengkompilasi ke ES5 tetapi membutuhkan core-js untuk polyfill beberapa fungsi ES6. Ini lib :

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

Lihat --lib di opsi kompiler docs .

file apa tepatnya yang harus saya ubah versi @types/node": "7.0.7"?
Pencarian direktori mengungkapkan saya memiliki 2 entri seperti itu:

image

yang mana yang saya ubah, atau apakah saya mengubah keduanya?

Keduanya ada di node_modules , jadi mungkin mereka tidak check-in dan tidak dapat diubah secara langsung. Alat penginstal yang Anda gunakan (misalnya npm atau jspm ) harus memiliki dokumentasi yang menjelaskan cara menginstal paket dan menyetel versinya.
Tetapi seperti yang ditunjukkan oleh diskusi di atas, sebaiknya gunakan versi terbaru dari semua pustaka, dan setel --lib di tsconfig.json .

Instalasi yang tepat akan memiliki versi dengan ^ sebagai karakter pertama di package.json (s), untuk mendapatkan yang terbaru. Mengenai masalah @types dan libs secara umum seperti yang disebutkan di sini, setelah diperbaiki, pertama-tama hapus semua direktori node_modules (jalur proyek utama, jalur klien, dll.), Kemudian lakukan npm install di setiap direktori yang bersangkutan, lalu luncurkan tsc lagi ( biasanya dengan file build kasar atau setara), untuk memeriksa semuanya baik-baik saja.
Dalam lingkungan pra produksi dan produksi, Anda mungkin harus melakukan hal yang sama.

@harrietsCreativeDabblets Anda harus dapat memasukkan yang berikut ini dalam devDependencies proyek Anda (dalam ng-start/package.json ):

"@types/node": "7.0.7"

Karena ini memenuhi jspm-config semver itu akan memastikan versi @types/node dikunci ke 7.0.7 . Perhatikan bahwa jika ini tidak memenuhi semver jspm-config , Anda akan berakhir dengan definisi duplikat.

Pastikan Anda menghapus node_modules dan npm i setelah memodifikasi package.json proyek Anda.

@pe8ter Terima kasih atas ketepatannya. Saya akhirnya memutakhirkan ke @types/ [email protected] dan membuat perubahan ini di tsconfig.json saya, sehingga menjaga kompatibilitas IE11.

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

Masalah yang sama di sini; diselesaikan dengan versi 7.0.7 downgrade

Masalah yang sama di sini; diselesaikan dengan versi 7.0.7 downgrade

Sepertinya ini tidak terpecahkan, dan menggunakan versi 7.0.7 selamanya tidak logis. Selain itu, menyematkan versi tidak memperbaiki ini untuk saya. Tidak ada di thread ini memiliki.

@loctrice Apa versi TypeScript Anda dari node_modules/typescript/package.json dan versi node dari node_modules/@types/node/package.json ?

TypeScript adalah 2.3.4 dan node 8.0.5

@loctrice Saya tidak dapat mereproduksi ini dengan versi tersebut. Saya berada di direktori kosong dan baru saja menginstalnya. Apa yang ada di tsconfig ? Bisakah Anda mencoba mendapatkan repro kecil?
Omong-omong, maksud Anda 8.0.50 bukannya 8.0.5 ? Diuji dengan keduanya dan tidak mendapatkan kesalahan.

Saya tidak yakin seperti apa seharusnya tsconfig saya. Saya telah menggedor ini setelah memutakhirkan dari pengetikan lama ke @types jadi saya telah mengubahnya berdasarkan utas yang saya lihat, hanya melihat apakah ada yang berhasil. Ini adalah kesalahan terakhir saya, dan sebelumnya hari ini saya tidak memasukkan lib sama sekali. Tidak ada yang saya tambahkan yang membuat efek:

{
"compilerOptions": {
"target": "es5",
"modul": "sistem",
"moduleResolution": "simpul",
"sourceMap": salah,
"emitDecoratorMetadata": benar,
"experimentalDecorators": benar,
"hapusKomentar": benar,
"noImplicitAny": salah,
"typeRoots": [
"./node_modules/@types"
],
"lib": [
"es2015",
"es6",
"dom",
"dom. dapat diubah"
]
},

Saya tidak dapat mereproduksi kesalahan dengan versi yang diinstal itu dan tsconfig.json .

  • mkdir repo; cd repro`
  • rekatkan konten itu ke tsconfig.json (dan tambahkan akhiran } )
  • npm install @types/[email protected] [email protected]
  • echo "" > a.ts
  • node node_modules/typescript/lib/tsc.js
  • Tidak ada kesalahan

Ini membantu saya memulai pemecahan masalah. Saya akan mulai menambahkan pengetikan saya satu per satu untuk melihat di mana masalahnya ada di proyek angular2 saya.

sepertinya ini mungkin disebabkan oleh pengetikan core-js dan es6 yang saya instal. Jika saya menghapus core-js maka saya mendapatkan kesalahan dari fitur seperti "Promise is a type" yang saya perbaiki kemarin dengan menyematkan versi core-js ke 0.9.35. Berikut adalah pengetikan saya:

chai: "^4.0.4",
inti-js: "0.9.35",
simpul: "^8.0.50",
lapisan terbuka: "^4.1.0",
systemjs: "^0.20.6",

Sepertinya konfliknya adalah karena di core-js pada baris 504 ada definisi untuk iterator: symbol dan di pengetikan simpul pada baris 54 ada definisi readonly iterator: symbol mengubah salah satu dari ini secara manual ke match akan membuat proyek saya dikompilasi.

Saya mencoba memperbarui dan bekerja dengan angular2-electron-boilerplate . Saya mendapatkan kesalahan ini:

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 };

Versi:

@philipbel apakah Anda mengetahuinya?

Apakah ada perbaikan permanen untuk masalah yang dijelaskan @loctrice ?

Tidak, saya belum.

Pada 2 Jan 2018, pukul 2:11, Smackzter [email protected] menulis:

@philipbel apakah Anda mengetahuinya?


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub, atau matikan utasnya.

@philipbel Sepertinya masalahnya ada di reflect-metadata . Penasaran bagaimana Anda akhirnya mengkompilasi dengan Reflect.ts alih-alih Reflect.d.ts .

@loctrice dengan mengedit core-js secara manual proyek saya dapat dikompilasi tetapi bisakah kami memiliki solusi yang lebih baik?

dicoba dengan @ types/ [email protected] bekerja dengan baik

@thanhngvpt Saya tidak berkontribusi pada proyek ini, jadi saya tidak dapat memberikan solusi. Saya akhirnya terpaksa memutakhirkan proyek saya, dan dengan itu sebagian besar paket, dan semuanya tampak baik-baik saja.

Untuk mengatasi ini

npm i [email protected] --save

Bangunan saya rusak entah dari mana!! Masalah ini masih ditampilkan.

lingkungan saya

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

Ya, sepertinya tidak ada yang saya lakukan untuk memperbaiki masalah ini. Saya tidak memiliki definisi lib dalam tsconfig.json saya dan saya benar-benar bingung dengan informasi yang diberikan di utas ini. Ini adalah file tsconfig.json :

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

Apa yang harus saya lakukan tentang ini yang akan berhenti menghasilkan kesalahan kompiler berikut yang sama sekali tidak dapat saya kendalikan?

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;
        ~~~~

Dependensi:

"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"
}

Sepertinya menambahkan "skipLibCheck": true ke tsconfig.json menghapus kesalahan kompiler. Saya tidak yakin itu ide yang baik untuk tidak mengetik-memeriksa perpustakaan bekas.

{
    "compilerOptions": {
        "skipLibCheck": true
    }
}
Apakah halaman ini membantu?
0 / 5 - 0 peringkat