Как проектировать discriminated union?

MiddleTypeScript · Frontend·Обновлено 16 июня 2026
Коротко
Нужен общий discriminant field и отдельный shape для каждого варианта состояния.

Нужен общий discriminant field и отдельный shape для каждого варианта состояния.

Сильный ответ должен раскрыть: discriminant; exhaustive checks; impossible states; читаемость.

Важно не допустить типичные ошибки: делать все поля optional; не проверять exhaustive case; смешивать несовместимые состояния.

Что хочет услышать интервьюер

discriminant

exhaustive checks

impossible states

читаемость

Пример: TypeScript example

type State = { status: 'loading' } | { status: 'success'; data: User };

Типичные ошибки

делать все поля optional

не проверять exhaustive case

смешивать несовместимые состояния

Лучшие курсы по теме

изображение курса

TypeScript с нуля

Антон Ларичев
AI-тренажерыAI-тренажеры
Практика в студииПрактика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.8
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

Feature-Sliced Design

Антон Ларичев
AI-тренажерыAI-тренажеры
Практика в студииПрактика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.5
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

Next.js - с нуля

Антон Ларичев
AI-тренажерыAI-тренажеры
Практика в студииПрактика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее