Перейти к основному содержимому
Об авторе
Проекты
Знания
Знания/TypeScript/discriminated-unions

Что такое дискриминированные объединения (Discriminated Unions) и как их использовать?

СобеседованиеСужение типовПаттерны типизации
  • Все варианты union имеют общее поле с литеральным типом (дискриминант)
  • Проверка дискриминанта автоматически сужает тип всего объекта
  • Идеально для: стейт-машин, Redux actions, ответов API
  • Паттерн: type State = { status: "idle" } | { status: "loading" } | { status: "success"; data: T } | { status: "error"; error: Error }
  • Исчерпывающие проверки с never в default/else
  • Несколько дискриминантов для более точного контроля
  • Главная
  • Об авторе
  • Проекты
  • Знания
Логотип nKolmykov