Тип never
Тип never представляет значения, которые никогда не возникают. Он используется для обозначения функций или выражений, которые никогда не возвращают управление либо выбрасывают ошибку.
Например, бесконечный цикл:
const infiniteLoop = (): never => { while (true) { // do something }};Выбрасывание ошибки:
const throwError = (message: string): never => { throw new Error(message);};Тип never полезен для обеспечения типобезопасности и выявления потенциальных ошибок в коде. Он помогает TypeScript анализировать и выводить более точные типы при использовании совместно с другими типами и операторами управления потоком выполнения, например:
type Direction = 'up' | 'down';const move = (direction: Direction): void => { switch (direction) { case 'up': // move up break; case 'down': // move down break; default: const exhaustiveCheck: never = direction; throw new Error(`Unhandled direction: ${exhaustiveCheck}`); }};