Проверяет понимание различий между типами void и never в TypeScript, которые часто путают начинающие разработчики.
В TypeScript оба типа используются для описания возвращаемых значений функций, но они обозначают принципиально разные ситуации. void указывает, что функция завершается нормально, но не возвращает никакого полезного значения (фактически возвращает undefined). never же говорит, что функция никогда не завершается — либо выбрасывает исключение, либо входит в бесконечный цикл.
Рассмотрим простые примеры:
function logMessage(msg: string): void {
console.log(msg);
// функция завершается, но ничего не возвращает
}
function throwError(msg: string): never {
throw new Error(msg);
// после throw выполнение прекращается
}
function infiniteLoop(): never {
while (true) {
// бесконечный цикл, функция никогда не завершится
}
}void — стандартный тип для функций, которые выполняют побочные эффекты (логирование, изменение DOM, запись в файл) и не возвращают значение.never — полезен для функций-обработчиков ошибок, бесконечных циклов (например, в игровых движках) или для проверки полноты типов (exhaustive checks).Используйте void для обычных функций без возврата, а never — когда функция гарантированно не завершится. Это помогает TypeScript точнее анализировать код и избегать ошибок, связанных с недостижимыми путями выполнения.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию