> В чем разница между типами void и never в TypeScript (TypeScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: ООО Премиум ИТ Солюшен, IT-One, Altenar

Стек: TypeScript

> Пример ответа

Разница между void и never в TypeScript принципиальна: void обозначает отсутствие возвращаемого значения (функция завершается нормально, но ничего не возвращает), а never - что функция никогда не завершается успешно (например, выбрасывает исключение или входит в бесконечный цикл).

  • void используется для функций, которые возвращают undefined или null (в нестрогом режиме). Переменная типа void может быть присвоена undefined или null (с флагом strictNullChecks - только undefined).

  • never - это нижний тип, который никогда не может иметь значения. Он используется в функциях, которые гарантированно не возвращают управление (например, throw new Error() или while(true){}). Также never применяется в типах-дискриминантах для исчерпывающих проверок (exhaustive checks).

Пример:

TYPESCRIPT
function logMessage(msg: string): void {
console.log(msg); // нормальное завершение
}
function fail(msg: string): never {
throw new Error(msg); // никогда не завершится
}

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью