@types/react-redux
und hatte Probleme.Definitions by:
in index.d.ts
), damit sie es können Antworten.@jamesreggio @JounQin
Die Aktualisierung von @types/react-redux 7.0.1
auf @types/react-redux 7.0.2
fĂŒhrt zu folgendem Fehler:
'/node_modules/hoist-non-react-statics' has no exported member 'NonReactStatics'.
47 import { NonReactStatics } from 'hoist-non-react-statics';
scheint, als wĂ€re es hier eingefĂŒhrt worden: https://github.com/DefinitelyTyped/DefinitelyTyped/commit/8b1beff944f6c7bf913b6fcee31fb5f7129064a7
Huch. Ich habe in dieser Ănderung eine AbhĂ€ngigkeit von @types/hoist-non-react-statics
, aber nicht als AbhĂ€ngigkeit hinzugefĂŒgt. Dieses Problem ist, dass ich nicht sicher bin, wo ich es als AbhĂ€ngigkeit deklarieren soll, da die Typen nur von den Typen abhĂ€ngen.
@JounQin , können Sie mir helfen zu verstehen, wie ich das beheben kann. MĂŒssen wir ///<reference
hinzufĂŒgen oder etwas zum package.json
hinzufĂŒgen?
Als vorĂŒbergehende Problemumgehung können Sie npm install --dev @types/hoist-non-react-statics
zu Ihrem Projekt hinzufĂŒgen.
Ich könnte mich irren, aber ich denke, das Problem ist vielleicht einfacher,
import { NonReactStatics } from 'hoist-non-react-statics';
sollte sein
import NonReactStatics from 'hoist-non-react-statics';
Ein Downgrade auf @types/react-redux 7.0.1 ist eine schnelle Lösung, bis dies behoben ist.
Ich habe dieses Problem heute auch. Downgrade auf 7.0.1 hat geholfen
Hier gilt das gleiche.
Huch. Ich habe in dieser Ănderung eine AbhĂ€ngigkeit von
@types/hoist-non-react-statics
, aber nicht als AbhĂ€ngigkeit hinzugefĂŒgt
DefinitelyTyped fĂŒgte @types/hoist-non-react-statics
automatisch als AbhÀngigkeit zu @types/react-redux
, aber (anscheinend) reichte das nicht aus, damit Ihre Eingaben funktionieren.
Als vorĂŒbergehende Problemumgehung können Sie
npm install --dev @types/hoist-non-react-statics
zu Ihrem Projekt hinzufĂŒgen.
Nein, das wird nicht funktionieren, da diese AbhĂ€ngigkeit bereits automatisch von DefinitelyTyped hinzugefĂŒgt wird, aber es reicht nicht aus, dass TS Ihre Eingaben korrekt behandelt.
Ich vermute das Problem, dass TS die Existenz des hoist-non-react-statics
Moduls nicht kennt, da das hoist-react-statics
Paket selbst nicht in node_modules vorhanden ist (es ist eine Schande, dass TS die Modulexistenz nicht von @types/hoist-non-react-statics
ableiten kann manuelle Installation von hoist-non-react-statics
dafĂŒr sorgt, dass Ihre Eingaben korrekt funktionieren .
Also, @jamesreggio, ich denke, Sie mĂŒssen das Paket hoist-non-react-statics
als AbhÀngigkeit zu package.json
von @types/react-redux
hinzufĂŒgen, um dieses Problem zu beheben.
@surgeboris auf [email protected]
und @types/[email protected]
hinzugefĂŒgt, ein Problem behoben
Der Fix funktioniert bei mir nicht wirklich. Vielleicht mache ich etwas falsch. Mit Garn 1.13
Alles klar, danke fĂŒr eure Geduld.
Ich habe eine Lösung gefunden und eine PR geöffnet: #33919.
Wenn Sie den Typdefinitionsexport im Node-Stil (mit export =
) verwenden, ist der richtige Importweg anscheinend mit import [name] = require([package name])
. Mir sind die Nuancen dieser Import/Export-Muster eher unbekannt, und ich bin nur vage zuversichtlicher, dass ich sie jetzt verstehe đ
Hoffentlich können die Betreuer von DefinitielyTyped dies so schnell wie möglich zusammenfĂŒhren und veröffentlichen. Sorry nochmal fĂŒr den RĂŒckschritt.
Leider hat dies das Problem fĂŒr mich selbst mit 7.0.4
, das kĂŒrzlich veröffentlicht wurde, nicht behoben
Es sieht so aus, als ob die explizite AbhÀngigkeit von @types/hoist-non-react-statics
noch fehlt.
eigentlich nein - ein neues npm i @types/react-redux
installiert @types/hoist-non-react-statics
. Ich sehe kein Problem?
Ja, die AbhÀngigkeit ist definitiv in package.json
:
"dependencies": {
"@types/hoist-non-react-statics": "*",
"@types/react": "*",
"redux": "^4.0.0"
},
Wenn Sie immer noch Probleme haben, sollten Sie ĂŒberprĂŒfen, ob die richtigen Versionen von allem installiert wurden.
(Insbesondere wird die AbhÀngigkeit als *
, sodass Sie möglicherweise eine Àltere Version von @types/hoist-non-react-statics
, der möglicherweise der Typ fehlt, der npm
als die AbhĂ€ngigkeit erfĂŒllend zĂ€hlt?)
Das Problem ist also etwas nuanciert.
Das hoist-non-react-statics
Paket enthielt seine eigenen hyper-einfachen Eingaben von v2.2.0
bis v3.0.0
, und wenn die Version von hoist-non-react-statics
in Ihrem Projektstamm darin aufgelöst wird Bereich, tritt dieser Fehler auf, da die paketlokalen Eingaben Vorrang vor @types/hoist-non-react-statics
.
Es gibt zwei sofortige Problemumgehungen:
hoist-non-react-statics@^3.3.0
als AbhÀngigkeit hinzu.package.json
eine AuflösungsĂŒberschreibung hinzu:
"resolutions": {
"hoist-non-react-statics": "^3.3.0"
}
Beides ist nicht optimal, da sich die meisten Entwickler (zu Recht) der Existenz von hoist-non-react-statics
nicht bewusst sind.
Ich bin mir nicht sicher, was hier der optimale Ansatz wĂ€re, aber ich vermute, dass, wenn wir eine bestimmte Versionsspezifikation fĂŒr @types/hoist-non-react-statics
innerhalb von package.json
fĂŒr @types/react-redux
auflisten könnten, wir die Auswirkungen mildern könnte.
@weswigham â wissen Sie, ob es möglich ist, die *
durch eine AbhÀngigkeit von @types/hoist-non-react-statics
mit >=3.3.0
zu ersetzen?
@weswigham â wissen Sie, ob es möglich ist, die
Wenn Sie es explizit in package.json
hinzufĂŒgen, könnte es funktionieren? AFAIK Sie können keine Versionen fĂŒr implizite oder auf Pfadzuordnungen basierende AbhĂ€ngigkeiten hartcodieren, aber ich könnte mich irren.
@sandersn weiĂt du mehr?
Ich habe gerade eine PR geöffnet, die eine bestimmte Version von @types/hoist-non-react-statics
im package.json
. Hoffentlich funktioniert das? Kann bestimmt nicht schaden.
@weswigham , macht es Ihnen
https://github.com/DefinitelyTyped/DefinitelyTyped/pull/33979
Ich weià nicht, ob das die richtige Lösung ist. Ich habe eine direkte AbhÀngigkeit von hoist-non-react-statics@latest
hinzugefĂŒgt und alle Probleme behoben.
Ugh, @weswigham + @sandersn â ich bin mir nicht sicher, was ich tun soll. Der Travis-Build ist fehlgeschlagen, weil ich eine bestimmte Versionsspezifikation fĂŒr @types/hoist-non-react-statics
hinzugefĂŒgt habe. Siehe den Fehler hier .
Es stimmt, dass meine Ănderung in @types/react-redux
ein Minimum von 3.3.0 von @types/hoist-non-react-statics
@types/react-redux
_erfordert_, also denke ich, dass ich in der Lage sein sollte, diese EinschrĂ€nkung auszudrĂŒcken. Können Sie mir helfen zu verstehen, wie das geht? (Soll ich tun, was die Fehlermeldung sagt, und es zu dependenciesWhitelist.txt
in types-publisher
hinzufĂŒgen? Das scheint ein zu groĂer Hammer zu sein.)
Es ist kein allzu groĂer Hammer - Ihr Problem ist ziemlich genau das, was die Log-Meldung beschreibt (auĂer wir haben dann auch wieder auf die zugrunde liegenden Paket- und nicht Versandarten zurĂŒckgegriffen, ganz die Saga).
Cool, ich habe eine PR bereit, die auf types-publisher
: https://github.com/Microsoft/types-publisher/pull/595
@weswigham â kannst du es landen?
Es wurde um 3:06 PDT (40 Minuten vor diesem Kommentar oder so) veröffentlicht.
Okay Leute, probiert @types/[email protected]
und lasst es mich wissen, wenn ihr immer noch kaputt seid.
Immer noch das gleiche Problem mit @types/[email protected]
. Die einzige Lösung, die fĂŒr mich funktioniert hat, ist, hoist-non-react-statics
in meinem Projekt manuell zu erfordern
Abgeordnet, immer noch defekt in @types/ react-redux @
@jamesreggio @weswigham Ich bin mir nicht sicher, ob du die Kommentare gesehen hast, aber pinge dich, damit wir sicher sind, dass du es gesehen hast
Ja, danke, hatte ich. Ich habe heute Nachmittag bei Cisco React unterrichtet, als das in die Klasse geriet. Nach einer kurzen ĂberprĂŒfung und fand ich diesen Thread, hatte ich sie zurĂŒck auf 7.0.1 und es funktionierte OK. Aber ich habe eine leichte Seltsamkeit. Wenn ich Hebezeug-Nicht-Reaktions-Statiken hinzufĂŒge, funktioniert es, wie oben beschrieben. Wenn ich hoist-non-react-statics deinstalliere, funktioniert es weiterhin. Vielleicht gibt es also eine echte AbhĂ€ngigkeit, die dort aufgenommen wird, aber auch dann bestehen bleibt, wenn Sie dieses Paket entfernen. Wenn ich node_modules und package-lock.json lösche und ohne Hoist neu installiere, ist es wieder kaputt. Ich muss jetzt hier raus, also kann ich jetzt nicht mehr Zeit damit verbringen, tiefer zu graben. Jemand anderes könnte es sowieso schneller finden, da es besser auf das Paket abgestimmt ist.
Ich werde mich morgen nochmal damit befassen, aber ehrlich gesagt brauche ich etwas Hilfe
von einem Experten. Die Feinheiten des TS-Modulsystems verblĂŒffen mich. ich fĂŒhle
als hÀtte ich hier alles richtig gemacht...
Können diejenigen von Ihnen, die das Problem haben, bitte eine Zusammenfassung Ihrer
package-lock.json oder garn.lock? Ich habe das GefĂŒhl, dass dies ein Problem sein könnte
auf die ungewöhnliche Tatsache, dass die Hub-Non-React-Statik eigene Typisierungen beinhaltete
fĂŒr einen kurzen Zeitraum in der Vergangenheit.
Am Do, 21. MĂ€rz 2019 um 20:03 Uhr schrieb Joel Mussman [email protected] :
Ja, danke, hatte ich. Ich habe heute Nachmittag bei Cisco React unterrichtet, als das
die Klasse gebissen. Nach einer kurzen ĂberprĂŒfung und ich fand diesen Thread, hatte ich sie zurĂŒck
bis 7.0.1 und es funktionierte OK. Aber ich habe eine leichte Seltsamkeit. Wenn ich hinzufĂŒge
heben-nicht-reagieren-statik funktioniert wie oben beschrieben. Wenn ich deinstalliere
heben-nicht-reagieren-statik es funktioniert weiter. Also vielleicht gibt es eine echte
AbhÀngigkeit, die dort aufgenommen wird, aber bleibt, auch wenn Sie sie entfernen
dieses Paket. Wenn ich node_modules und package-lock.json lösche und
ohne Hebezeug neu installieren, es ist wieder kaputt. Ich muss jetzt hier raus,
Daher kann ich jetzt nicht mehr Zeit damit verbringen, tiefer zu graben.
Jemand anderes könnte es sowieso schneller finden, wenn er mehr mit dem im Einklang ist
Paket.â
Sie erhalten dies, weil Sie erwÀhnt wurden.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-475477877 ,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/AAyLva1P2ZGe86669tG7yu7fe1yMWWf-ks5vZEgHgaJpZM4bjI1Z
.
Hier ist mein package-lock.json
: https://github.com/hellomouse/GNS/blob/greenkeeper/default/%40types/react-redux-7.0.5/dashboard/package-lock.json
Hallo James,
OK, ich verstehe, was in meinem Klassenprojekt falsch ist. Ich weiĂ noch nicht, wie ich es beheben kann. Aber ich werde veröffentlichen, was ich weiĂ, und vielleicht kann Ihnen jemand bei Definitely Typed helfen.
React-Router wird vor React-Redux vom vorherigen Lab installiert. Die aktuelle Version von React-Router (bis vor 4 Tagen) war 4.3.1 und hat eine AbhÀngigkeit von [email protected]. Da niemand sonst eine AbhÀngigkeit von hoist-non-react-statics hatte, wurde das Paket gemÀà den Regeln auf der obersten Ebene von node_modules installiert. Jetzt ist [email protected] installiert. Es hÀngt von der [email protected] ab. Da sich 2.2.5 jedoch bereits auf der obersten Ebene befindet, wird 3.3.0 in den Ordner node_modules UNDER React-Redux gelegt. Es scheint also, dass die AbhÀngigkeit in @types/react-redux von @types/ hoist-non- react-statics@
Andere zuvor beschriebene Probleme können diesem Szenario sehr Àhnlich sein.
Verwandte Frage: Wie sollen wir wissen, welche Version von @types/react-redux welcher Version von React-Redux zugeordnet ist? Da die Zahlen nicht ĂŒbereinstimmen, bin ich dort verloren.
Ich habe eine PR erstellt, um dieses Problem zu beheben #34090
Sollte dieses Problem nicht erneut geöffnet werden, da das zugrunde liegende Problem mit Version 7.0.5 noch nicht behoben ist?
(ohne @types/hoist-non-react-statics + hoist-non-react-statics zu den devDependencies hinzuzufĂŒgen)
100% stimmen zu, dass dies nicht geschlossen werden sollte, aber immer noch kaputt ist, es sei denn, Sie fĂŒgen manuell zu devDependances hinzu
Ich habe den richtigen Fix eingereicht, den die Leute hier von Anfang an anscheinend ignoriert haben: #34406
Jetzt, da der PR zusammengefĂŒhrt ist, mĂŒssen die Reak-Redux-Typen die AbhĂ€ngigkeit von der Hubwerk-Nicht-Reakt-Statik aktualisieren?
Ich glaube schon. Aber ich denke, Sie können damit davonkommen, die AbhĂ€ngigkeit zu entfernen (deinstallieren) und erneut hinzuzufĂŒgen
Von: Maurice [email protected]
Gesendet: Donnerstag, 4. April 2019 15:53:32
An: Definitiv typisiert/Definitiv typisiert
CC: wolfy1339; Handbuch
Betreff: Re: [DefinitelyTyped/DefinitelyTyped] [@types/react-redux] 'hoist-non-react-statics' hat keinen exportierten Member 'NonReactStatics' (#33690)
Jetzt, da der PR zusammengefĂŒhrt ist, mĂŒssen die Reak-Redux-Typen die AbhĂ€ngigkeit von der Hubwerk-Nicht-Reakt-Statik aktualisieren?
â
Sie erhalten dies, weil Sie diesen Thread abonniert haben.
Antworten Sie direkt auf diese E-Mail, zeigen Sie sie auf GitHub https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-480039685 an oder schalten Sie den Thread stumm https://github.com/notifications/unsubscribe-auth/AEYfFbvvu7_1ZrU42jUUxkBX3k5uwlg
Du meinst die React-Redux-Tipps? Ich werde das versuchen.
@wolfy1339 https://github.com/DefinitelyTyped/DefinitelyTyped/pull/34406 schien das Problem fĂŒr mich nicht zu beheben. Ich denke, das liegt daran, dass hoist-non-react-statics
innerhalb von @types/hoist-non-react-statics
( node_modules/@types/hoist-non-react-statics/node_modules/hoist-non-react-statics
) installiert wird, also verwendet TS immer noch die Typen meiner Root-Version ( node_modules/hoist-non-react-statics
).
An dieser Stelle war es einen Versuch wert. Hat noch jemand eine Idee?
@weswigham Können Sie dieses Problem erneut öffnen?
Hatte ein Àhnliches Problem - die Verwendung von Garn anstelle von npm zum Installieren von AbhÀngigkeiten hat mein Problem behoben. Poste als Randnotiz, weil ihr es vielleicht als Workaround ausprobieren könnt.
@alan-mroczek Wir verwenden Garn, also hilft das nicht. Hier muss etwas anderes im Spiel sein. (Datei sperren?)
Ich weiĂ nicht, ob ich das genaue Problem verstehe, aber die Lösung, die fĂŒr mich mit Garn funktionierte, bestand darin, der package.json ein Auflösungsfeld hinzuzufĂŒgen.
"resolutions": {
"hoist-non-react-statics": ">=3.3.0"
}
Dieses Problem ist fĂŒr "@types/react-redux": "7.0.8",
immer noch aktiv und das Festlegen von "Auflösungen" ist keine universelle Lösung, da "Auflösungen" in Monorepo (Garne-Arbeitsbereiche) nicht funktionieren.
Und ich erwarte sowieso nicht, dass es die Lösung ist. Meiner Meinung nach sollte das @types- Paket nach der Installation "einfach funktionieren"
Könnte die Lösung fĂŒr diese ganze Tortur darin bestehen, sie als Peer-AbhĂ€ngigkeit hinzuzufĂŒgen? Sicher ist es nicht narrensicher, aber es ist der einzige Weg, um sicherzustellen, dass Typoskript die erforderliche AbhĂ€ngigkeit findet
Holen Sie sich Outlook fĂŒr Android https://aka.ms/ghei36
Von: Maurice [email protected]
Gesendet: Montag, 29. April 2019 12:30:06
An: Definitiv typisiert/Definitiv typisiert
CC: wolfy1339; ErwÀhnen
Betreff: Re: [DefinitelyTyped/DefinitelyTyped] [@types/react-redux] 'hoist-non-react-statics' hat keinen exportierten Member 'NonReactStatics' (#33690)
Und ich erwarte sowieso nicht, dass es die Lösung ist. Meiner Meinung nach sollte das @types https://github.com/types-Paket nach der Installation "einfach funktionieren"
â
Sie erhalten dies, weil Sie erwÀhnt wurden.
Antworten Sie direkt auf diese E-Mail, zeigen Sie sie auf GitHub https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-487649204 an oder schalten Sie den Thread stumm https://github.com/notifications/unsubscribe-auth/ABDB6FL2OUVTTX754VHATFLPS4PA5MRCNFQSM4G .
Ich habe viele Dinge ausprobiert, aber das Downgrade auf @types/react-redux 7.0.1 ist im Moment immer noch die einzige Lösung, die funktioniert.
Das gleiche fĂŒr mich ! Aber ich hoffe, dass eines Tages eine echte Lösung kommt (diese veraltete AbhĂ€ngigkeit zu behalten ist seltsam!).
Ich denke, wir mĂŒssen dasselbe wie #34406 in den React-Redux-Typisierungen tun und nur eine direkte AbhĂ€ngigkeit von hoist-non-react-statics
hinzufĂŒgen, da NPM & Yarn nicht unbedingt die "richtige" Version von hoist-non-react-statics
im Verzeichnis ĂŒber @types/react-redux
(was dazu fĂŒhrt, dass TS das in v2.5 eingebaute index.d.ts
greift, falls es dort ist)
Dies ist eine wirklich knorrige Lösung (und könnte theoretisch abgeschwĂ€cht werden, wenn TypeScript es uns ermöglichen wĂŒrde, @types/hoist-non-react-statics/index.d.ts
direkt zu importieren, aber ich sehe keine vernĂŒnftigen Alternativen (und im Grunde alle anderen, die auf @types/hoist-non-react-statics
angewiesen sind) muss das gleiche tun)
Ich denke, wir mĂŒssen dasselbe wie #34406 in den React-Redux-Typisierungen tun und nur eine direkte AbhĂ€ngigkeit von
hoist-non-react-statics
hinzufĂŒgen, da NPM & Yarn nicht unbedingt die "richtige" Version vonhoist-non-react-statics
im Verzeichnis ĂŒber@types/react-redux
(was dazu fĂŒhrt, dass TS das in v2.5 eingebauteindex.d.ts
greift, falls es dort ist)Dies ist eine wirklich knorrige Lösung (und könnte theoretisch abgeschwĂ€cht werden, wenn TypeScript es uns ermöglichen wĂŒrde,
@types/hoist-non-react-statics/index.d.ts
direkt zu importieren, aber ich sehe keine vernĂŒnftigen Alternativen (und im Grunde alle anderen, die auf@types/hoist-non-react-statics
angewiesen sind) muss das gleiche tun)
Wie sieht es mit dem Import aus '../hoist-non-react-statics' aus?
Soweit ich sehe, wird das Paket '@types/hoist-non-react-statics' automatisch installiert, wenn '@types/react-redux' installiert wird, es sollte also keine Gefahr bestehen, dass es fehlt.
Ich habe 2 Dateien angehĂ€ngt, um eine Lösung zu zeigen, die fĂŒr mich funktioniert.
Hebezeug-non-react-statics_index.d.txt
reagieren-redux_index.d.txt
Angesichts der Funktionsweise von npm können wir nicht garantieren, dass sich die Eingaben von hoist-non-react-statics
in einem Geschwisterverzeichnis von react-redux
. Je nachdem, welche anderen AbhĂ€ngigkeiten der Benutzer installiert hat, kann es sich um ein GroĂelternteil oder ein Kind handeln.
Das ist bei mir noch kaputt. Mein export default connect()(MyComponent)
erhÀlt den Typ any
. ZurĂŒck zu 7.0.1
behebt diesen Teil... Dies scheint eine Ănderung in 7.0.2
.
Passiert immer noch mit 7.1.0
und ein Downgrade auf 7.0.1
ist fĂŒr uns keine Option, weil wir TS 3.5.2
brauchen (mit TS 3.4.5
, 7.0.1
funktioniert) und das wirft den folgenden Fehler mit 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>>'.
Also, irgendwelche ... Problemumgehungen? Ich bin kein Experte auf dem Gebiet, daher kann ich nicht verstehen, was ich damit machen soll.
@tsakalidiskostas
Nun, wir haben uns entschieden, eine modifizierte Version der react-redux
Typen in unser Repository zu ĂŒbertragen. (Nachdem Sie sich gegen die Verwendung von Patch-Paketen entschieden haben . Dies kann eine gute vorĂŒbergehende Lösung sein, wenn Sie die erforderliche Garnumgehung nicht stören.)
Wobei wir einfach die folgende Zeile Àndern:
> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & hoistNonReactStatics.NonReactStatics<C> & {
zu:
> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & {
Da wir keine Statik verwenden, schadet es uns nicht, aber das ist natĂŒrlich nicht fĂŒr jeden eine akzeptable Lösung.
Cool! Ich bin mit dem Vorschlag von @alessioprestileo zum Wechseln
import hoistNonReactStatics = require('hoist-non-react-statics');
zum
import { NonReactStatics } from '../hoist-non-react-statics';
und Àndere den Anruf zu
> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & NonReactStatics<C> & {
und es hat auch bei mir funktioniert, wollte eigentlich nur aktualisieren, als ich deine Antwort sah: D
WĂŒrden Sie also eine neue Version in npm mit Fixes veröffentlichen? :)
Können wir einfach die Betreuer von Hoist-non-react-statics dazu bringen, die Eingaben wieder in ihr Repo zu ĂŒberprĂŒfen?
Also .. passiert das oder sollte ich mit einem Gabelwechsel daran weitermachen?
Hi. Wir haben auch auf die neueste 7.1.1
von @types/react-redux
Version mit react-redux
aktualisiert: 7.1.0
und wir sehen diesen Fehler mit npm. Ich bin verwirrt, da alle diesbezĂŒglichen Tickets geschlossen sind.
Ein Downgrade auf 7.0.1
behebt dieses Problem, verursacht jedoch ein neues Problem, wenn wir die neueste Typescript-Version 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'.
was es zu einem traurigen Workaround macht.
Die neueste Version (dh 7.1.1
) von @types/react-redux
verwendet Shared<TInjectedProps, GetProps<C>>
als EinschrÀnkung (genau wegen dieses Fixes in TS, der darauf hinwies, dass die EinschrÀnkung falsch war) - Sie haben eine andere Bibliothek, die ein verschachteltes Include einer Àlteren Version der react-redux
Typen erzwingt, denke ich.
Also ich habe den Workaround. Es heiĂt "Patchpaket".
Wenn Sie das Patch-Paket noch nie verwendet haben, ist es eigentlich ganz einfach! Sie fĂŒgen es einfach zu Ihrer Konfiguration hinzu, npm installiert es, dann drĂŒcken Sie einfach einen Patch-Paketbefehl fĂŒr das geĂ€nderte Modul, das Sie repariert haben und das funktioniert und voila. Jetzt haben Sie ein paar Module, die sich unter einem Patch-Paket befinden, das nur die geĂ€nderten Dateien des Moduls enthĂ€lt, das Sie repariert haben, nichts zu ausgefallen oder zu groĂ usw. Der Fehler ist behoben, die AbhĂ€ngigkeit geht nicht verloren, also wenn / wenn sie behoben werden Sie können einfach ein oder zwei Dateien löschen und alles ist in Ordnung
Ich kann bestÀtigen, dass die Installation von hoist-non-react-statics
diesen Fehler fĂŒr react-redux
7.1.0 und @types/react-redux
7.1.1 behebt. Ich verwende auch Typescript 3.4.3.
Ich weiĂ jedoch nicht, warum dieses Thema geschlossen ist. Gibt es eine vernĂŒnftigere Lösung, ohne das Paket patchen oder den Modulauflösungsbaum ĂŒberschreiben zu mĂŒssen?
Ich habe das gleiche Problem wie @jalMogo
Beobachte dieses Problem immer noch.
@jalMogo Soweit ich das verstanden habe, ist dies kein Problem mit Redux, sondern mit Hoist-Non-React-Statik und deshalb wird das Problem hier geschlossen. Es gibt mehrere Problemumgehungen in dem Thread, aber es wĂ€re besser, wenn jemand, der erfahren genug ist, den Hebezeugen eine Lösung geben wĂŒrde.
Ich bin nicht der Meinung, dass es sich um ein Problem mit der Hubwerks-Nicht-Reaktions-Statik handelt. Es ist ein Problem mit der Beschreibung von Redux, da es am Ende die Àltere und falsche Version von hoist-non-react-statics betrachtet, wenn es im node_modules-Baum existiert, was es tut, wenn andere Dinge wie der Router installiert sind . Die AbhÀngigkeit muss richtig beschrieben werden und die neue Version muss nÀher im Baum node_modules installiert werden.
Dies ist immer noch ein Thema.
+1
Ich erhalte dieses Problem immer noch und der Lint sagt, dass ein Fehler im Code vorliegt. Arbeitet noch jemand daran oder gilt es als geschlossen? Ich habe alle aktuellen Versionen installiert und bekomme immer noch:
Namespace '"/home/myhome/Projects/node_modules/hoist-non-react-statics/index"' hat keinen exportierten Member 'NonReactStatics'.ts(2694)
Dies ist definitiv ein Problem von ihrer Seite. Problemumgehung: @types/hoist-non-react-statics
sollte als AbhĂ€ngigkeit in IHREM Projekt aufgefĂŒhrt sein, damit es funktioniert
Aber ich habe das und habe immer noch das Problem:
"AbhÀngigkeiten": {
...
"@types/hoist-non-react-statics": "^3.3.1",
ist in meinem package.json
Mein Fehler. Du brauchst hoist-non-react-statics
Von: Robert Rehammar [email protected]
Gesendet: Sonntag, 20. Oktober 2019 01:50:51
An: DefinitelyTyped/DefinitelyTyped [email protected]
Cc: wolfy1339 [email protected] ; ErwÀhnen Sie ErwÀ[email protected]
Betreff: Re: [DefinitelyTyped/DefinitelyTyped] [@types/react-redux] 'hoist-non-react-statics' hat keinen exportierten Member 'NonReactStatics' (#33690)
Aber ich habe das und habe immer noch das Problem:
"AbhÀngigkeiten": {
...
"@types/hoist-non-react-statics": "^3.3.1",
ist in meinem package.json
â
Sie erhalten dies, weil Sie erwÀhnt wurden.
Antworten Sie auf diese E - Mail direkt, sehen sie auf GitHub https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690?email_source=notifications&email_token=ABDB6FORFBHI575QMINWIQ3QPPWTXA5CNFSM4G4MRVM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBYC7IY#issuecomment-544223139 oder abmelden https://github.com/notifications/unsubscribe- auth/ABDB6FLBLRAIO2PIIGMMJY3QPPWTXANCNFSM4G4MRVMQ .
Ich habe "hoist-non-react-statics": "^3.3.0"
in meinen AbhÀngigkeiten und "@types/hoist-non-react-statics": "^3.3.1"
in meinen devDependencies und ich habe das Problem auch immer noch. Ich habe bestÀtigt, dass auch keine anderen Bibliotheken Àltere Versionen davon einziehen.
Ich habe es auch versucht, ohne "@types/hoist-non-react-statics"
explizit zu installieren (denn nach meinem VerstÀndnis sollte das Hauptpaket bereits Eingaben enthalten), aber mit dem gleichen Ergebnis.
Jeder, der mit diesem Problem konfrontiert ist, sollte eine lauffÀhige Reproduktion bereitstellen, ansonsten können wir keine Hilfe anbieten.
Es tut mir leid, das Projekt, das ich erlebe, ist nicht Open Source und ich habe nicht die Zeit, ein separates Projekt zu erstellen, um es zu prÀsentieren. Was mir jedoch aufgefallen ist, ist, dass das Projekt keine Probleme hatte, bis ich allowJs: true
im tsconfig.json
aktivierte. Ohne diese Einstellung funktionierte noch alles einwandfrei. Ich hoffe es hilft.
Das HinzufĂŒgen der 'Hebezeug-Nicht-Reakt-Statik' scheint dies hier behoben zu haben.
repro installiert nur @types/react-redux und importiert dann alles in React-Redux in eine tsx-Datei.
Eine Möglichkeit, dieses Problem zu beheben, besteht darin, "skipLibCheck": true in tsconfig.json hinzuzufĂŒgen. Es ist nicht die beste Lösung, aber als Workaround kann es verwendet werden.
Ich denke, das passiert, weil Typoskript die Dinge in dieser Reihenfolge auflöst:
package/package.json[types]
@types/package
package
(alles auĂer dem Feld types
)Warum es das tut, ist mir ein RĂ€tsel, aber es ist hier dokumentiert: https://www.typescriptlang.org/docs/handbook/module-resolution.html#how -typescript-resolves-modules
Wenn Sie also beispielsweise die folgende Verzeichnisstruktur haben:
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
Dann macht Typoskript folgendes:
node_modules/@types/react-redux/node_modules/hoist-non-react-statics
da die aktuelle Version keine Typen enthÀltnode_modules/hoist-non-react-statics
(der alten Version) zu finden, weil sein package.json
ein types
Feld hatDaher können Sie, wie andere bereits erwÀhnt haben, das Problem beheben, indem Sie in Ihrem Projekt eine AbhÀngigkeit zu den neuesten hoist-non-react-statics
hinzufĂŒgen, da dies kein types
Feld in package.json
hat lÀsst Schritt 2 fehlschlagen.
Ironischerweise können Sie es auch beheben, indem Sie Ihrem Projekt eine AbhÀngigkeit von einem Àlteren hoist-non-react-statics
hinzufĂŒgen, zB 3.0.0. Dies funktioniert, weil es die Installation der korrekten Version (3.3.0) in node_modules/@types/react-redux/node_modules/types/hoist-non-react-statics
erzwingt, wo es zuvor gelöst wurde :confounded:
Also ich habe zwei Fragen:
types
speziell auf diese Weise, und es kommt vor oder nach @types
Paketen, je nachdem, ob das Feld types
verwendet wird oder nicht?hoist-non-react-statics
einmal Typen eingebaut hatte, warum wurden sie dann hierher ĂŒberfĂŒhrt? Dies wĂ€re kein Problem, wenn die Typen in das Paket integriert wĂ€ren. Ich kann nicht sehen, wie Garn / NPM mit separaten Paketen fĂŒr Code und Typen richtig umgehen kann, da sie nicht wissen, wie die beiden verbunden sind.Dieses Problem scheint mit den neuesten Paketversionen wieder aufgetaucht zu sein, dh:
[email protected]
@types/[email protected]
Ich konnte dies beheben, indem ich die folgenden Pakete manuell in mein package.json
:
[email protected]
@types/[email protected]
Da die hoist-non-react-statics
Pakete nach meinen ursprĂŒnglichen npm install
Paketen Duplikate dieser Pakete in meinem node_modules
Ordner waren. Das Laufen von npm dedupe
geklÀrt.
Hoffe, das hilft allen anderen, die mitkommen!
Ich hatte dieses Problem auch - Lob sei an @DannyDelotts Lösung!
Ich hatte dieses Problem auch - Lob sei an @DannyDelotts Lösung!
Die derzeit schnellste Lösung, ohne Ihr package.json
mit AbhÀngigkeiten zu belasten, die Sie nicht direkt benötigen, ist das Entfernen von @types/react-redux
npm remove @types/react-redux
Sobald wir sehen, dass dieses Problem behoben wurde, können wir es zurĂŒckstellen
Das Problem tritt immer noch auf und die einzige Möglichkeit, dies zu beheben, besteht darin, die genannten AbhĂ€ngigkeiten zu Ihrem Projekt hinzuzufĂŒgen. Dies ist jedoch nicht ideal, also werden wir hoffentlich bald eine Lösung finden!
Bemerke dieses Problem immer noch.
FĂŒr jeden, der bereit ist, sich weiterzuentwickeln, wĂ€hrend ein stabiler Fix live ist, können Sie den folgenden typedef verwenden:
// [your-src-folder]/types/hoist-non-react-statics.d.ts
declare module 'hoist-non-react-statics' {
type NonReactStatics<T> = any;
export { NonReactStatics }
}
Dies ist nicht die ideale Lösung, aber zumindest nĂŒtzlich, um Build-Fehler mit TS zu vermeiden
Hilfreichster Kommentar
Ich könnte mich irren, aber ich denke, das Problem ist vielleicht einfacher,
sollte sein
Ein Downgrade auf @types/react-redux 7.0.1 ist eine schnelle Lösung, bis dies behoben ist.