State Management · Senior · Frage 73 von 75
Warum modelliert man asynchronen State als Discriminated Union statt als getrennte Felder?
type State =
| { status: "idle" }
| { status: "loading" }
| { status: "success"; data: User[] }
| { status: "error"; error: string };- 1Reducer verlangen es für jeden Action-Typ
- 2Es braucht zur Laufzeit spürbar weniger Speicher
- 3Unmögliche Kombinationen sind nicht darstellbar
Antwort zeigen
Richtige Antwort: Unmögliche Kombinationen sind nicht darstellbar
Erklärung
Bibliotheken wie TanStack Query zeigen dieselbe Idee über status. In eigenen Reducern entfallen dadurch defensive Prüfungen in der ganzen UI.