Zarządzanie stanem · Senior · Pytanie 73 z 75
Po co modelować stan asynchroniczny unią dyskryminowaną zamiast osobnych pól?
type State =
| { status: "idle" }
| { status: "loading" }
| { status: "success"; data: User[] }
| { status: "error"; error: string };- ✓Poprawna odpowiedź: Niemożliwych kombinacji (ładowanie z danymi i błędem) nie da się wyrazić, a TypeScript zawęża
datapo statusie - 2Oszczędza pamięć
- 3Wymagają tego reducery
Wyjaśnienie
Biblioteki takie jak TanStack Query przekazują tę samą ideę przez status. We własnych reducerach eliminuje to defensywne sprawdzenia w całym UI.