Для чего используется never в TypeScript?
Базовые типы
`never` — тип значения, которого не может существовать. Его используют для невозможных веток и функций, которые никогда не завершаются нормально.
Функции, которые не возвращают управление
function fail(message: string): never {
throw new Error(message);
}Проверка полноты switch
type Shape = { kind: 'circle'; r: number } | { kind: 'square'; a: number };
function area(shape: Shape) {
switch (shape.kind) {
case 'circle': return Math.PI * shape.r ** 2;
case 'square': return shape.a ** 2;
default: {
const check: never = shape; // ошибка, если добавят новый вариант
return check;
}
}
}В условных типах
never «исчезает» из объединений, поэтому через него фильтруют типы:
type NonNull<T> = T extends null | undefined ? never : T;Коротко для собеседования
never — пустой тип: для функций без нормального возврата, проверки полноты switch и фильтрации в условных типах.
Подробнее: TypeScript Handbook — never