The return type of the produce method will have an additional undefined
Maintainer antworten meist innerhalb von 4 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- typescript
- Bereich
- tooling
Rechercherichtung
Beginne mit dem TypeScript-Beispiel im verknüpften CodeSandbox, insbesondere mit src/index.ts und seinem produce-Aufruf, und reproduziere den berichteten inferierten Rückgabetyp. Vergleiche das Verhalten mit der angegebenen Erwartung für die Versionen 9.x. Erledigt ist die Aufgabe, wenn die Typprüfung des Beispiels dem zurückgegebenen Record-Typ nicht mehr undefined hinzufügt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
🙋♂ Question
A clear and concise description of what the question is. In general we recommend to use Stack Overflow for questions. Questions typically are processed with less priority.
import { produce } from 'immer';
const func = produce((state: Record<string, string> = {}): Record<string, string> => {
return state;
});
In the above code, I expect the type of the func to be Record<string, string>, but the actual type check returns Record<string, string> | undefined, how can I avoid the undefined?

This problem only occurs in 9.x versions
Link to repro
https://codesandbox.io/s/immer-sandbox-forked-n1okz2?file=/src/index.ts
Environment
We only accept questions against the latest Immer version.
- Immer version:
- Occurs with
setUseProxies(true) - Occurs with
setUseProxies(false)(ES5 only)
- 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
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus immerjs/immer
-
Shrinking an array with `length =` and growing it back loses the patches for the truncated indicesEvtl. vergeben @RClaudiuM hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 4 Tagen
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
Maintainer antworten meist innerhalb von 4 Tagen
-
Docs: Chinese (zh-CN) website translation is outdated vs English docsEvtl. wieder frei @lijiayou0728 hat das vor 91 Tagen übernommen, und es ist kein Pull Request offen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
immerjs/immer#1242 · 5 Kommentare ·
Maintainer antworten meist innerhalb von 4 Tagen
-
question
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
Maintainer antworten meist innerhalb von 4 Tagen
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
immerjs/immer#1217 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 4 Tagen
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Automattic/node-canvas#2633 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
capricorn86/happy-dom#2594 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
microsoft/monaco-editor#5575 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 1 Tag