Unable to pass generic to produce for dynamic typing

Offen
#1,130 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 4 Tagen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
25/100
Issue-Typ
Bug
Klarheit
Muss geklärt werden
Aktivitätsstatus
Veraltet
Tech-Stack
typescript
Bereich
api

Rechercherichtung

Beginne mit der verlinkten CodeSandbox-Reproduktion und vergleiche die im Issue gezeigten generischen und konkreten Aufrufe. Lies die TypeScript-Deklarationen von Immer für produce und die zugehörigen Draft-Typen. Die Aufgabe ist abgeschlossen, wenn festgestellt wurde, ob der gemeldete generische Aufruf unterstützt wird, oder wenn die erforderliche Verwendung dokumentiert ist – mit einer fokussierten Reproduktion oder einem Test, falls eine Änderung an der Bibliothek erforderlich ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

question

🙋‍♂ Question

I am unable to pass generic parameter type to my produce function in order to propagate that generic to type of draft itself like so:
SearchContextProvider:
Screenshot 2024-06-19 at 10 59 49 PM
Reducer:
Screenshot 2024-06-19 at 11 00 43 PM
State for the draft to be applied:
Screenshot 2024-06-19 at 11 01 21 PM
Error:
Screenshot 2024-06-19 at 11 01 42 PM

This only occures with generic, if I use concrete type I won't get such error (namely If I replace generic with ResultDummy - error vanishes.

How do I go about it since this Provider supposed to be used in different part of the code and should receive different type depends on part of the code where it is used. Thank you!

Here is playground where I reproduced the issue:
https://codesandbox.io/s/produce-with-generic-vchkj4

Environment

We only accept questions against the latest Immer version.

  • Immer version: "^10.1.1"
Vorherrschende Sprache
JavaScript
Sterne
29k
Forks
905
Ø Merge
3 T. 16 Std.
Gemergte PRs (30 T.)
22

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus immerjs/immer

Alle Issues in immerjs/immer

Ähnliche Issues

Weitere Issues zu JavaScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.