Definitelytyped: [@types/react-redux] 'hoist-non-react-statics' tidak memiliki anggota yang diekspor 'NonReactStatics'

Dibuat pada 7 Mar 2019  ·  84Komentar  ·  Sumber: DefinitelyTyped/DefinitelyTyped

  • [x] Saya mencoba menggunakan paket @types/react-redux dan mengalami masalah.
  • [x] Saya mencoba menggunakan tsc versi stabil terbaru. https://www.npmjs.com/package/typescript
  • [x] Saya punya pertanyaan yang tidak pantas untuk StackOverflow . (Silakan ajukan pertanyaan yang sesuai di sana).
  • [x] [Sebutkan](https://github.com/blog/821-mention-somebody-they-re-notified) penulisnya (lihat Definitions by: di index.d.ts ) agar mereka dapat menanggapi.

@jamesreggio @JounQin

memperbarui dari @types/react-redux 7.0.1 ke @types/react-redux 7.0.2 memberikan kesalahan berikut:

'/node_modules/hoist-non-react-statics' has no exported member 'NonReactStatics'.

47 import { NonReactStatics } from 'hoist-non-react-statics';

sepertinya diperkenalkan di sini: https://github.com/DefinitelyTyped/DefinitelyTyped/commit/8b1beff944f6c7bf913b6fcee31fb5f7129064a7

Komentar yang paling membantu

Saya bisa saja salah tetapi saya pikir masalahnya mungkin lebih sederhana,

import { NonReactStatics } from 'hoist-non-react-statics';

seharusnya

import NonReactStatics from 'hoist-non-react-statics';

menurunkan versi ke @types/react-redux 7.0.1 adalah perbaikan cepat sampai ini diperbaiki.

Semua 84 komentar

Astaga. Saya memperkenalkan ketergantungan pada @types/hoist-non-react-statics dalam perubahan itu, tetapi saya tidak menambahkannya sebagai ketergantungan. Masalah ini adalah, saya tidak yakin di mana mendeklarasikannya sebagai dependensi, karena tipenya hanya bergantung pada tipenya.

@JounQin , dapatkah Anda membantu saya memahami cara memperbaikinya. Apakah kita perlu menambahkan ///<reference atau menambahkan sesuatu ke package.json ?

Sebagai solusi sementara, Anda dapat npm install --dev @types/hoist-non-react-statics ke proyek Anda.

Saya bisa saja salah tetapi saya pikir masalahnya mungkin lebih sederhana,

import { NonReactStatics } from 'hoist-non-react-statics';

seharusnya

import NonReactStatics from 'hoist-non-react-statics';

menurunkan versi ke @types/react-redux 7.0.1 adalah perbaikan cepat sampai ini diperbaiki.

Saya mendapat masalah ini hari ini juga. Menurunkan ke 7.0.1 membantu

Sama disini.

Astaga. Saya memperkenalkan ketergantungan pada @types/hoist-non-react-statics dalam perubahan itu, tetapi saya tidak menambahkannya sebagai ketergantungan

PastiTyped secara otomatis menambahkan @types/hoist-non-react-statics sebagai dependensi ke @types/react-redux , tetapi (tampaknya) itu tidak cukup untuk pengetikan Anda berfungsi.

Sebagai solusi sementara, Anda dapat npm install --dev @types/hoist-non-react-statics ke proyek Anda.

Tidak, itu tidak akan berfungsi karena ketergantungan ini sudah ditambahkan secara otomatis oleh PastiTyped, tetapi itu tidak cukup bagi TS untuk memperlakukan pengetikan Anda dengan benar.

Saya kira masalahnya TS tidak mengetahui keberadaan modul hoist-non-react-statics , karena paket hoist-react-statics itu sendiri tidak ada di node_modules (sayang sekali TS tidak dapat menurunkan keberadaan modul dari @types/hoist-non-react-statics paket, meskipun mungkin ada alasan yang sah untuk perilaku tersebut misalnya kompatibilitas). Hipotesis ini dikonfirmasi oleh fakta bahwa instalasi manual hoist-non-react-statics membuat pengetikan Anda bekerja dengan benar .

Jadi, @jamesreggio Saya kira Anda harus menambahkan paket hoist-non-react-statics sebagai dependensi ke package.json dari @types/react-redux untuk memperbaiki masalah ini.

@surgeboris diperbarui ke 7.0.3 dan menambahkan [email protected] dan @types/[email protected] , memperbaiki masalah

Perbaikan tidak benar-benar bekerja untuk saya. Mungkin saya melakukan sesuatu yang salah. Menggunakan benang 1.13

Oke semuanya, terima kasih atas kesabaran Anda.

Saya menemukan perbaikan dan membuka PR: #33919.

Rupanya, jika Anda menggunakan ekspor definisi tipe Node-style (dengan export = ), cara yang tepat untuk mengimpor adalah dengan import [name] = require([package name]) . Saya agak asing dengan nuansa pola impor/ekspor ini, dan saya hanya sedikit lebih yakin bahwa saya memahaminya sekarang

Semoga pengelola DefinitielyTyped dapat menggabungkan dan merilis ini secepatnya. Maaf sekali lagi untuk regresi.

Sayangnya, bahkan dengan 7.0.4 yang baru saja dirilis, ini tidak memperbaiki masalah bagi saya

Sepertinya ketergantungan eksplisit pada @types/hoist-non-react-statics masih hilang.

sebenarnya, tidak - npm i @types/react-redux diinstal @types/hoist-non-react-statics . Saya tidak melihat ada masalah?

Yup, ketergantungannya pasti tercantum dalam package.json :

  "dependencies": {
    "@types/hoist-non-react-statics": "*",
    "@types/react": "*",
    "redux": "^4.0.0"
  },

jika Anda masih mengalami masalah, Anda harus memeriksa ulang versi yang benar dari semua yang telah diinstal.

(Secara khusus, dependensi terdaftar sebagai * , jadi Anda mungkin memiliki versi @types/hoist-non-react-statics yang lebih lama yang mungkin tidak memiliki tipe yang npm dianggap memenuhi dependensi?)

Jadi, masalahnya agak bernuansa.

Paket hoist-non-react-statics menyertakan pengetikan hyper-basic sendiri dari v2.2.0 hingga v3.0.0 , dan jika versi hoist-non-react-statics yang diselesaikan di proyek Anda, root di dalamnya range, Anda akan menemukan kesalahan ini karena pengetikan paket-lokal lebih diutamakan daripada @types/hoist-non-react-statics .

Ada dua solusi langsung:

  1. Tambahkan hoist-non-react-statics@^3.3.0 ke proyek Anda sebagai ketergantungan.
  2. Jika menggunakan benang, tambahkan penimpaan resolusi ke package.json seperti itu:
    "resolutions": { "hoist-non-react-statics": "^3.3.0" }

Tak satu pun dari ini yang optimal, karena sebagian besar pengembang (seharusnya) tidak menyadari keberadaan hoist-non-react-statics sejak awal.

Saya tidak begitu yakin pendekatan optimal apa yang akan ada di sini, tetapi saya menduga bahwa jika kita dapat membuat daftar versi spesifik untuk @types/hoist-non-react-statics di dalam package.json untuk @types/react-redux , kita dapat mengurangi dampaknya.

@weswigham — apakah Anda tahu apakah mungkin untuk mengganti ketergantungan yang dibuat secara otomatis dengan * dengan ketergantungan pada @types/hoist-non-react-statics dengan >=3.3.0 ?

@weswigham — apakah Anda tahu apakah mungkin untuk mengganti ketergantungan yang dibuat secara otomatis dengan * dengan ketergantungan pada @types/hoist-non-react-statics dengan >=3.3.0?

Jika Anda secara eksplisit menambahkannya di package.json mungkin berhasil? AFAIK Anda tidak dapat membuat versi hardcode untuk dependensi berbasis pemetaan atau pemetaan jalur, tetapi saya bisa saja salah.

@sandersn tahu lebih banyak?

Saya baru saja membuka PR yang menyertakan versi spesifik @types/hoist-non-react-statics di package.json . Semoga itu berhasil? Tentu tidak bisa menyakiti.

@weswigham , apakah Anda keberatan meninjau dan memberikan persetujuan?

https://github.com/DefinitelyTyped/DefinitelyTyped/pull/33979

Saya tidak tahu apakah itu perbaikan yang benar. Saya menambahkan ketergantungan langsung pada hoist-non-react-statics@latest dan itu memperbaiki semua masalah.

Ugh, @weswigham + @sandersn — Saya tidak yakin harus berbuat apa. Pembuatan Travis gagal karena saya menambahkan spesifikasi versi tertentu untuk @types/hoist-non-react-statics . Lihat kesalahannya di sini .

Memang benar bahwa perubahan saya ke @types/react-redux _requires_ minimal 3.3.0 dari @types/hoist-non-react-statics , jadi saya merasa harus bisa mengungkapkan batasan itu. Bisakah Anda membantu saya memahami cara melakukannya? (Haruskah saya melakukan seperti yang dikatakan pesan kesalahan dan menambahkannya ke dependenciesWhitelist.txt di types-publisher ? Sepertinya itu palu yang terlalu besar.)

Ini bukan palu yang terlalu besar - masalah Anda persis seperti yang dijelaskan oleh pesan log (kecuali kami juga sekali lagi bertukar kembali ke paket yang mendasarinya bukan jenis pengiriman, cukup kisahnya).

Keren, saya punya PR yang siap untuk digabungkan pada types-publisher : https://github.com/Microsoft/types-publisher/pull/595

@weswigham — bisakah kamu mendaratkannya?

Ini diterbitkan pada 3:06 PDT (40 menit sebelum komentar ini atau lebih).

Oke teman-teman, cobalah @types/[email protected] dan beri tahu saya jika Anda masih rusak.

Masih masalah yang sama dengan @types/[email protected] . Satu-satunya perbaikan yang berhasil bagi saya adalah secara manual memerlukan hoist-non-react-statics dalam proyek saya

Diperbantukan, masih rusak di @types/ [email protected].

@jamesreggio @weswigham Saya tidak yakin apakah Anda telah melihat komentarnya tetapi melakukan ping kepada Anda jadi kami yakin Anda telah melihatnya

Ya, terima kasih, saya punya. Saya sedang mengajar React sore ini di Cisco ketika ini mengganggu kelas. Setelah pemeriksaan cepat dan saya menemukan utas ini, saya mengembalikannya ke 7.0.1 dan berfungsi dengan baik. Tapi, saya punya sedikit keanehan. Jika saya menambahkan hoist-non-react-statics, ini berfungsi, seperti dijelaskan di atas. Jika saya menghapus hoist-non-react-statics itu terus berfungsi. Jadi mungkin ada ketergantungan nyata yang diambil di sana, tetapi tetap ada bahkan jika Anda menghapus paket itu. Jika saya menghapus node_modules dan package-lock.json dan menginstal ulang tanpa hoist, itu rusak lagi. Saya harus keluar dari sini sekarang, jadi saya tidak bisa menghabiskan waktu lagi sekarang untuk mencoba menggali lebih dalam. Orang lain mungkin merasa lebih cepat karena lebih selaras dengan paketnya.

Saya akan menggali ini lagi besok, tapi jujur, saya butuh bantuan
dari seorang ahli. Seluk-beluk sistem modul TS membuatku bingung. saya rasa
seperti saya telah melakukan semuanya dengan benar di sini ...

Bisakah Anda yang mengalami masalah, silakan rekatkan intisari Anda
package-lock.json atau yarn.lock? Saya merasa ini mungkin terkait dengan masalah
dengan fakta yang tidak biasa bahwa hoist-non-react-statics menyertakan pengetikannya sendiri
untuk waktu yang singkat di masa lalu.

Pada Kamis, 21 Maret 2019 pukul 20:03 Joel Mussman [email protected] menulis:

Ya, terima kasih, saya punya. Saya sedang mengajar React sore ini di Cisco saat ini
menggigit kelas. Setelah pemeriksaan cepat dan saya menemukan utas ini, saya mendapatkannya kembali
turun ke 7.0.1 dan itu berfungsi dengan baik. Tapi, saya punya sedikit keanehan. Jika saya menambahkan
hoist-non-react-statics berfungsi, seperti dijelaskan di atas. Jika saya menghapus
hoist-non-react-statics itu terus bekerja. Jadi mungkin ada yang nyata
ketergantungan yang diambil di sana, tetapi tetap ada bahkan jika Anda menghapusnya
paket itu. Jika saya menghapus node_modules dan package-lock.json dan
instal ulang tanpa hoist, rusak lagi. Aku harus pergi dari sini sekarang,
jadi saya tidak bisa menghabiskan waktu lagi sekarang untuk mencoba menggali lebih dalam.
Orang lain mungkin merasa lebih cepat lagi karena lebih selaras dengan
kemasan.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-475477877 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AAyLva1P2ZGe86669tG7yu7fe1yMWWf-ks5vZEgHgaJpZM4bjI1Z
.

Hai James,

OK Saya mengerti apa yang salah dalam proyek kelas saya. Saya belum tahu bagaimana cara memperbaikinya. Tapi, saya akan mengungkapkan apa yang saya ketahui, dan mungkin seseorang di Pasti Mengetik mungkin dapat membantu Anda.

react-router diinstal sebelum react-redux oleh lab sebelumnya. Versi react-router saat ini (hingga 4 hari yang lalu) adalah 4.3.1, dan memiliki ketergantungan pada [email protected]. Jadi, di bawah aturan karena tidak ada orang lain yang memiliki ketergantungan pada hoist-non-react-statics, paket tersebut dipasang di tingkat atas node_modules. Sekarang [email protected] telah diinstal. Itu tergantung pada [email protected]. Tetapi, karena 2.2.5 sudah berada di level teratas, ia menempatkan 3.3.0 di folder node_modules DI BAWAH react-redux. Jadi tampaknya ketergantungan pada @types/react-redux dari @types/ [email protected] tidak menemukannya karena tidak berada di level atas. Aturan-aturan yang belum saya gali, tetapi orang lain mungkin dapat segera menjelaskannya.

Masalah orang lain yang dijelaskan sebelumnya mungkin sangat mirip dengan skenario ini.

Pertanyaan terkait: bagaimana kita bisa mengetahui versi mana dari @types/react-redux memetakan ke versi react-redux yang mana? Karena nomornya tidak berbaris, saya tersesat di sana.

Saya telah membuat PR untuk memperbaiki masalah ini #34090

Bukankah seharusnya masalah ini dibuka kembali karena masalah mendasarnya belum diperbaiki dengan versi 7.0.5?
(tanpa menambahkan @types/hoist-non-react-statics + hoist-non-react-statics ke devDependencies)

100% setuju ini tidak boleh ditutup, masih rusak kecuali Anda menambahkan secara manual ke devDependancy

Saya telah mengajukan perbaikan yang tepat yang tampaknya diabaikan oleh orang-orang di sini sejak awal: #34406

Jadi sekarang PR digabungkan, tipe react-redux harus memperbarui ketergantungan pada hoist-non-react-statics?

Aku pikir begitu. Tapi saya pikir Anda bisa lolos dengan menghapus ketergantungan (mencopot pemasangannya), dan menambahkannya kembali


Dari: Maurice [email protected]
Dikirim: Kamis, 4 April 2019 15:53:32
Kepada: Diketik Pasti/Diketik Pasti
Cc: wolfy1339; manual
Subjek: Re: [DefinitelyTyped/DefinitelyTyped] [@types/react-redux] 'hoist-non-react-statics' tidak memiliki anggota yang diekspor 'NonReactStatics' (#33690)

Jadi sekarang PR digabungkan, tipe react-redux harus memperbarui ketergantungan pada hoist-non-react-statics?


Anda menerima ini karena Anda berlangganan utas ini.
Balas email ini secara langsung, lihat di GitHub https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-480039685 , atau nonaktifkan utasnya https://github.com/notifications/unsubscribe-auth/AEYfFbvvu7_1ZrU42jUUxkBX .

Maksud Anda pengetikan reaksi-redux? Saya akan mencobanya.

@wolfy1339 https://github.com/DefinitelyTyped/DefinitelyTyped/pull/34406 sepertinya tidak memperbaiki masalah bagi saya. Saya pikir ini karena hoist-non-react-statics akan diinstal di dalam @types/hoist-non-react-statics ( node_modules/@types/hoist-non-react-statics/node_modules/hoist-non-react-statics ), jadi TS masih menggunakan tipe dari versi root saya ( node_modules/hoist-non-react-statics ).

Pada titik ini patut dicoba. Ada yang punya ide?

@weswigham Bisakah Anda membuka kembali masalah ini?

Punya masalah serupa - menggunakan benang alih-alih npm untuk menginstal dependensi menyelesaikan masalah saya. Posting sebagai catatan tambahan karena mungkin kalian bisa mencobanya sebagai solusi.

@alan-mroczek Kami menggunakan benang jadi tidak, ini tidak membantu. Pasti ada hal lain yang berperan di sini. (mengunci file?)

Saya tidak tahu apakah saya memahami masalah sebenarnya, tetapi solusi yang berhasil bagi saya dengan benang adalah menambahkan bidang resolusi ke package.json.

"resolutions": {
  "hoist-non-react-statics": ">=3.3.0"
}

Masalah ini masih aktif untuk "@types/react-redux": "7.0.8", dan menyetel "resolusi" bukanlah solusi universal karena "resolusi" tidak berfungsi di monorepo (ruang kerja benang)

Dan saya tidak berharap itu menjadi solusi. Menurut saya paket @types setelah diinstal seharusnya "berfungsi"

Mungkinkah solusi untuk seluruh cobaan ini adalah dengan menambahkannya sebagai ketergantungan rekan? Tentu itu tidak mudah, tetapi itu satu-satunya cara untuk menjamin bahwa TypeScript menemukan ketergantungan yang diperlukan

Dapatkan Outlook untuk Android https://aka.ms/ghei36


Dari: Maurice [email protected]
Dikirim: Senin, 29 April 2019 12:30:06 PM
Kepada: Diketik Pasti/Diketik Pasti
Cc: wolfy1339; Menyebutkan
Subjek: Re: [DefinitelyTyped/DefinitelyTyped] [@types/react-redux] 'hoist-non-react-statics' tidak memiliki anggota yang diekspor 'NonReactStatics' (#33690)

Dan saya tidak berharap itu menjadi solusi. Menurut saya paket @types https://github.com/types setelah diinstal seharusnya "berfungsi"


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-487649204 , atau bisukan utasnya https://github.com/notifications/unsubscribe-auth/ABDB6FL2OUVTTX754VHATVMQSM4PA5ANCNFQSM4PA5ANCNFQSM4PA5ANC

Mencoba banyak hal, menurunkan versi ke @types/react-redux 7.0.1 masih merupakan satu-satunya perbaikan yang berfungsi saat ini.

Hal yang sama untukku ! Tapi saya harap perbaikan nyata akan datang suatu hari (menjaga ketergantungan yang sudah ketinggalan zaman ini aneh!).

Saya pikir kita perlu melakukan hal yang sama seperti #34406 dalam pengetikan react-redux, dan cukup tambahkan ketergantungan langsung pada hoist-non-react-statics , karena NPM & Benang tidak harus menempatkan versi "benar" dari hoist-non-react-statics di direktori di atas @types/react-redux (yang akan menyebabkan TS mengambil index.d.ts bawaan v2.5 jika ada)

Ini adalah solusi yang sangat buruk (dan secara teoritis dapat dikurangi jika TypeScript mengizinkan kami mengimpor @types/hoist-non-react-statics/index.d.ts secara langsung, tetapi saya tidak melihat alternatif yang masuk akal (dan pada dasarnya siapa pun yang bergantung pada @types/hoist-non-react-statics akan perlu melakukan hal yang sama)

Saya pikir kita perlu melakukan hal yang sama seperti #34406 dalam pengetikan react-redux, dan cukup tambahkan ketergantungan langsung pada hoist-non-react-statics , karena NPM & Benang tidak harus menempatkan versi "benar" dari hoist-non-react-statics di direktori di atas @types/react-redux (yang akan menyebabkan TS mengambil index.d.ts bawaan v2.5 jika ada)

Ini adalah solusi yang sangat buruk (dan secara teoritis dapat dikurangi jika TypeScript mengizinkan kami mengimpor @types/hoist-non-react-statics/index.d.ts secara langsung, tetapi saya tidak melihat alternatif yang masuk akal (dan pada dasarnya siapa pun yang bergantung pada @types/hoist-non-react-statics akan perlu melakukan hal yang sama)

Bagaimana dengan mengimpor dari '../hoist-non-react-statics'?
Sejauh yang saya lihat paket '@types/hoist-non-react-statics' diinstal secara otomatis ketika '@types/react-redux' diinstal, jadi seharusnya tidak ada risiko hilang.
Saya melampirkan 2 file untuk menunjukkan solusi yang sesuai untuk saya.

hoist-non-react-statics_index.d.txt
reaksi-redux_index.d.txt

Mengingat cara kerja npm, kami tidak dapat menjamin bahwa pengetikan hoist-non-react-statics akan berada di direktori saudara react-redux . Bergantung pada dependensi lain apa yang telah diinstal pengguna, itu bisa berupa kakek-nenek, atau bisa juga anak-anak.

Ini masih rusak bagi saya. export default connect()(MyComponent) diberikan tipe any . Kembali ke 7.0.1 memperbaiki bagian ini... Ini tampaknya merupakan perubahan pada 7.0.2 .

Masih terjadi dengan 7.1.0 dan menurunkan versi ke 7.0.1 bukanlah pilihan bagi kami karena kami membutuhkan TS 3.5.2 (dengan TS 3.4.5 , 7.0.1 tidak berfungsi) dan itu menimbulkan kesalahan berikut dengan 7.0.1 :

node_modules/@types/react-redux/index.d.ts:109:84 - error TS2344: Type 'GetProps<C>' does not satisfy the constraint 'Shared<TInjectedProps, GetProps<C>>'.
  Type 'unknown' is not assignable to type 'Shared<TInjectedProps, GetProps<C>>'.

Jadi, ada.. solusi? Saya bukan ahli dalam hal ini, jadi saya tidak mengerti apa yang harus saya lakukan dengan ini.

@tsakalidiskostas

Yah, kami memutuskan bahwa kami akan melakukan versi modifikasi dari tipe react-redux ke repo kami. (Setelah memutuskan untuk tidak menggunakan patch-package . Yang bisa menjadi solusi sementara yang baik jika Anda tidak keberatan dengan solusi benang yang diperlukan.)

Di mana kita cukup mengubah baris berikut:

> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & hoistNonReactStatics.NonReactStatics<C> & {

ke:

> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & {

Karena kami tidak menggunakan statika, itu tidak merugikan kami, tetapi itu tentu saja bukan solusi yang dapat diterima untuk semua orang.

Dingin! Saya mengikuti saran @alessioprestileo untuk berubah

import hoistNonReactStatics = require('hoist-non-react-statics');

untuk

import { NonReactStatics } from '../hoist-non-react-statics';

dan mengubah panggilan menjadi

> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & NonReactStatics<C> & {

dan itu bekerja untuk saya juga, sebenarnya baru saja akan memperbarui ketika saya melihat jawaban Anda: D

Jadi, apakah Anda akan menerbitkan versi baru di npm dengan perbaikan? :)

Bisakah kita meminta pengelola hoist-non-react-statics untuk memeriksa pengetikan kembali ke repo mereka?

Jadi .. apakah ini terjadi atau haruskah saya melanjutkan dengan perubahan garpu itu?

Hai, yang di sana. Kami juga memperbarui ke versi 7.1.1 dari @types/react-redux dengan react-redux : 7.1.0 dan kami melihat kesalahan ini dengan npm. Saya bingung karena semua tiket yang mengacu pada ini ditutup.
Penurunan versi ke 7.0.1 memang memperbaiki masalah ini tetapi menyebabkan masalah baru jika kita menggunakan Versi TypeScript terbaru 3.5.x :

/.../node_modules/@types/react-redux/index.d.ts(109,84): error TS2344: Type 'GetProps<C>' does not satisfy the constraint 'Shared<TInjectedProps, GetProps<C>>'.
  Type 'unknown' is not assignable to type 'Shared<TInjectedProps, GetProps<C>>'.
    Type 'Matching<TInjectedProps, GetProps<C>>' is not assignable to type 'Shared<TInjectedProps, GetProps<C>>'.
      Type 'P extends keyof TInjectedProps ? TInjectedProps[P] extends GetProps<C>[P] ? GetProps<C>[P] : TInjectedProps[P] : GetProps<C>[P]' is not assignable to type 'TInjectedProps[P] extends GetProps<C>[P] ? GetProps<C>[P] : never'.

menjadikannya solusi yang agak menyedihkan.

Versi terbaru (yaitu, 7.1.1 ) dari @types/react-redux tidak menggunakan Shared<TInjectedProps, GetProps<C>> sebagai batasan (tepatnya karena perbaikan di TS yang menunjukkan bahwa batasan itu salah) - Anda memiliki perpustakaan lain yang memaksa penyertaan bersarang dari versi lama dari tipe react-redux , saya pikir.

Jadi, saya punya solusinya. Ini disebut "paket tambalan".

Jika Anda belum pernah menggunakan paket patch sebelumnya sebenarnya cukup mudah! Anda cukup menambahkannya ke konfigurasi Anda, npm install, lalu Anda cukup menekan perintah paket patch pada modul yang diubah yang telah Anda perbaiki dan berfungsi dan voila. Sekarang Anda memiliki beberapa modul yang berada di bawah paket patch yang hanya memiliki file yang diubah dari modul yang Anda perbaiki, tidak ada yang terlalu mewah atau terlalu besar dll. Kesalahan sudah diperbaiki, ketergantungan tidak hilang, jadi ketika / jika mereka memperbaikinya itu Anda dapat dengan mudah menghapus satu atau dua file dan semuanya baik-baik saja

Saya dapat mengonfirmasi bahwa menginstal hoist-non-react-statics menyelesaikan kesalahan ini untuk react-redux 7.1.0 dan @types/react-redux 7.1.1 Saya juga menggunakan TypeScript 3.4.3.

Saya tidak tahu mengapa masalah ini ditutup. Apakah ada solusi yang lebih masuk akal, tanpa harus menambal paket atau mengganti pohon resolusi modul?

Saya mengalami masalah yang sama dengan @jalMogo

Masih melihat masalah ini.

@jalMogo sejauh yang saya mengerti, ini bukan masalah dengan redux, tetapi dengan hoist-non-react-statics dan itulah mengapa masalah ditutup di sini. Ada beberapa solusi di utas, tetapi lebih baik jika seseorang yang cukup terampil memberikan perbaikan pada orang-orang kerekan.

Saya tidak setuju bahwa ini adalah masalah dengan hoist-non-react-statics. Ini adalah masalah dengan deskripsi redux, karena akhirnya melihat versi hoist-non-react-statics yang lebih lama dan salah jika ada di pohon node_modules, yang dilakukannya ketika beberapa hal lain seperti router diinstal . Ketergantungan perlu dijelaskan dengan benar dan versi baru dipasang dengan benar lebih dekat di pohon node_modules.

Ini masih menjadi masalah.

+1

Saya masih mendapatkan masalah ini dan serat mengatakan ada kesalahan dalam kode. Apakah ada yang masih mengerjakan ini atau sudah dianggap tutup? Saya telah menginstal semua versi terbaru dan masih mendapatkan:

Namespace '"/home/myhome/Projects/node_modules/hoist-non-react-statics/index"' tidak memiliki anggota yang diekspor 'NonReactStatics'.ts(2694)

Ini jelas merupakan masalah di pihak mereka. Solusi: @types/hoist-non-react-statics harus terdaftar sebagai dependensi dalam proyek ANDA agar dapat berfungsi

Tapi saya punya itu, dan masih mendapatkan masalah:
"ketergantungan": {
...
"@types/hoist-non-react-statics": "^3.3.1",

ada di package.json saya

Salahku. Anda membutuhkan hoist-non-react-statics


Dari: Robert Rehammar [email protected]
Dikirim: Minggu, 20 Oktober 2019 01:50:51
Kepada: Diketik Pasti/Diketik Pasti [email protected]
Cc: wolfy1339 [email protected] ; Sebutkan [email protected]
Subjek: Re: [DefinitelyTyped/DefinitelyTyped] [@types/react-redux] 'hoist-non-react-statics' tidak memiliki anggota yang diekspor 'NonReactStatics' (#33690)

Tapi saya punya itu, dan masih mendapatkan masalah:
"ketergantungan": {
...
"@types/hoist-non-react-statics": "^3.3.1",

ada di package.json saya


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, melihatnya di GitHub https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690?email_source=notifications&email_token=ABDB6FORFBHI575QMINWIQ3QPPWTXA5CNFSM4G4MRVM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBYC7IY#issuecomment-544223139 , atau berhenti berlangganan https://github.com/notifications/unsubscribe- auth/ABDB6FLBLRAIO2PIIGMMJY3QPPWTXANCNFSM4G4MRVMQ .

Saya memiliki "hoist-non-react-statics": "^3.3.0" di dependensi saya dan "@types/hoist-non-react-statics": "^3.3.1" di devDependencies saya dan saya sendiri juga masih memiliki masalah. Saya telah mengkonfirmasi tidak ada perpustakaan lain yang menarik versi yang lebih lama dari ini.

Saya juga mencoba tanpa menginstal "@types/hoist-non-react-statics" secara eksplisit (karena dari apa yang saya pahami, paket utama seharusnya sudah termasuk pengetikan), tetapi dengan hasil yang sama.

Siapa pun yang menghadapi masalah ini harus menyediakan reproduksi yang dapat dijalankan, jika tidak, kami tidak dapat menawarkan bantuan apa pun.

Maaf, proyek yang saya alami ini bukan open-source dan saya tidak punya waktu untuk membuat proyek terpisah untuk memamerkannya. Namun apa yang saya perhatikan adalah proyek tidak memiliki masalah sampai saya mengaktifkan allowJs: true di tsconfig.json . Tanpa pengaturan ini, semuanya masih berfungsi dengan baik. Semoga membantu.

menambahkan 'hoist-non-react-statics' tampaknya telah memperbaikinya di sini.

repro hanya menginstal @types/react-redux dan kemudian mengimpor apa pun di react-redux dalam file tsx.

Salah satu cara untuk memperbaiki masalah ini adalah dengan menambahkan "skipLibCheck": true di tsconfig.json. Ini bukan solusi terbaik, tetapi sebagai solusi, ini dapat digunakan.

Saya pikir ini terjadi karena TypeScript menyelesaikan hal-hal dalam urutan ini:

  1. package/package.json[types]
  2. @types/package
  3. package (semuanya kecuali bidang types )

Mengapa hal itu menjadi misteri bagi saya, tetapi didokumentasikan di sini: https://www.typescriptlang.org/docs/handbook/module-resolution.html#how -typescript-resolves-modules

Jadi misalnya, jika Anda memiliki struktur direktori berikut:

node_modules/
  @types/
    hoist-non-react-statics/ (3.3.0)
    react-redux/
      node_modules/
        hoist-non-react-statics/ (3.3.0)

  hoist-non-react-statics/
    package.json (2.0, which has a types field!!!)
    index.d.ts

Kemudian TypeScript akan melakukan hal berikut:

  1. gagal mendapatkan tipe dari node_modules/@types/react-redux/node_modules/hoist-non-react-statics karena versi saat ini tidak menyertakan tipe
  2. berhasil menemukan tipe dari node_modules/hoist-non-react-statics (versi lama) karena package.json memiliki bidang types

maka seperti yang disebutkan orang lain, Anda dapat memperbaiki masalah dengan menambahkan ketergantungan pada proyek Anda pada hoist-non-react-statics , karena itu tidak memiliki bidang types di package.json jadi itu membuat langkah 2 gagal.

Ironisnya, Anda juga dapat memperbaikinya dengan menambahkan ketergantungan pada proyek Anda pada hoist-non-react-statics , misalnya 3.0.0. Ini berfungsi karena memaksa versi yang benar (3.3.0) untuk diinstal di node_modules/@types/react-redux/node_modules/types/hoist-non-react-statics , di mana itu diselesaikan sebelumnya :confounded:

Jadi saya punya dua pertanyaan:

  1. Mengapa TypeScript memperlakukan bidang types secara khusus dengan cara ini, dan itu muncul sebelum atau sesudah paket @types tergantung pada apakah bidang types digunakan atau tidak?
  2. Jika hoist-non-react-statics pernah memiliki tipe bawaan, mengapa mereka disingkirkan ke sini? Ini tidak akan menjadi masalah jika tipe dibangun ke dalam paket. Saya tidak dapat melihat bagaimana benang/NPM dapat menangani paket terpisah untuk kode dan tipe dengan benar karena mereka tidak tahu bagaimana keduanya terhubung.

Masalah ini tampaknya muncul kembali dengan versi paket terbaru, yaitu:

[email protected]
@types/[email protected]

Saya dapat menyelesaikan ini dengan memasukkan paket-paket berikut secara manual di package.json :

[email protected]
@types/[email protected]

Karena paket hoist-non-react-statics setelah npm install awal saya ada duplikat paket-paket ini di folder node_modules . Menjalankan npm dedupe menghapusnya.

Harapan yang membantu orang lain yang datang!

Saya juga mengalami masalah ini - pujian untuk solusi @DannyDelott !

Saya juga mengalami masalah ini - pujian untuk solusi @DannyDelott !

Solusi tercepat untuk saat ini tanpa mencemari package.json dengan dependensi yang tidak Anda perlukan secara langsung adalah menghapus @types/react-redux

npm remove @types/react-redux

Setelah kami melihat bahwa masalah ini telah diselesaikan, maka kami dapat mengembalikannya

Masalah masih terjadi dan satu-satunya cara untuk memperbaikinya adalah dengan menambahkan dependensi yang disebutkan ke proyek Anda. Ini tidak ideal, jadi semoga kami akan segera mendapatkan perbaikan!

Masih memperhatikan masalah ini.

Bagi siapa pun yang ingin terus mengembangkan sementara perbaikan stabil akan ditayangkan, Anda dapat menggunakan typedef di bawah ini:

// [your-src-folder]/types/hoist-non-react-statics.d.ts

declare module 'hoist-non-react-statics' {
  type NonReactStatics<T> = any;
  export { NonReactStatics }
}

Ini bukan solusi ideal, tapi setidaknya berguna untuk menghindari kesalahan build dengan TS

Apakah halaman ini membantu?
0 / 5 - 0 peringkat