Патерни проєктування · Middle · Запитання 8 з 75

Чому набір прапорців isLoading, isError, isSuccess гірший за явний стан?

type State =
  | { status: "idle" }
  | { status: "loading" }
  | { status: "success"; data: User }
  | { status: "error"; error: string };

Пояснення

Три булеві прапорці дають 8 комбінацій, включно з безглуздими «завантажується й помилка одночасно». Дискримінований union - по суті патерн «Стан» / скінченний автомат: переходи явні, а data доступна лише в success.

Де почитати

Помилка в запитанні

Патерни проєктування · Middle · запитання 8

Перевірте себе

Пройдіть тест Патерни проєктування · Middle: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест