Керування станом · Senior · Запитання 73 з 75
Навіщо моделювати асинхронний стан дискримінованим об'єднанням, а не окремими полями?
type State =
| { status: "idle" }
| { status: "loading" }
| { status: "success"; data: User[] }
| { status: "error"; error: string };- ✓Правильна відповідь: Неможливі комбінації (завантаження з даними й помилкою) не можна виразити, а TypeScript звужує
dataза статусом - 2Це економить пам'ять
- 3Цього вимагають редʼюсери
Пояснення
Бібліотеки на кшталт TanStack Query передають ту саму ідею через status. У власних редʼюсерах це прибирає захисні перевірки по всьому UI.