Entwurfsmuster · Middle · Frage 8 von 75
Warum sind die Flags isLoading, isError, isSuccess schlechter als ein expliziter Zustand?
type State =
| { status: "idle" }
| { status: "loading" }
| { status: "success"; data: User }
| { status: "error"; error: string };- 1Flags erlauben unmögliche Kombinationen
- 2Flags brauchen mehr Speicher als ein einzelnes String-Feld
status - 3TypeScript kann nicht mehrere boolesche Felder zugleich typisieren
Antwort zeigen
Richtige Antwort: Flags erlauben unmögliche Kombinationen
Erklärung
Drei boolesche Flags ergeben 8 Kombinationen, darunter sinnlose wie „lädt und Fehler zugleich“. Eine Discriminated Union ist im Grunde das State-Muster bzw. ein endlicher Automat: Übergänge sind explizit, und data gibt es nur in success.