Wzorce projektowe · Middle · Pytanie 8 z 75
Dlaczego flagi isLoading, isError, isSuccess są gorsze niż jawny stan?
type State =
| { status: "idle" }
| { status: "loading" }
| { status: "success"; data: User }
| { status: "error"; error: string };- ✓Poprawna odpowiedź: Flagi dopuszczają niemożliwe kombinacje, a jawny stan tylko poprawne
- 2Flagi zajmują więcej pamięci niż jedno pole stringowe
status - 3TypeScript nie potrafi otypować kilku pól boolean naraz
Wyjaśnienie
Trzy flagi boolean dają 8 kombinacji, w tym bezsensowne typu „ładowanie i błąd naraz”. Unia dyskryminowana to w istocie wzorzec State / automat skończony: przejścia są jawne, a data jest dostępne tylko w success.