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

Как работает исчерпывающая проверка (Exhaustiveness Checking) в TypeScript?

СобеседованиеСужение типовПаттерны типизации
  • Если все члены union обработаны, остаток имеет тип never
  • Паттерн: const _: never = value в default/else — ошибка компиляции при пропуске варианта
  • assertNever(value: never): never — функция-утверждение для проверки
  • Работает в switch и if/else цепочках
  • При добавлении нового члена union — ошибка компиляции во всех необработанных местах
  • Record<Type, Handler> — маппинг как альтернатива switch
  • Главная
  • Об авторе
  • Проекты
  • Знания
Логотип nKolmykov