Ответ
void означает, что функция ничего не возвращает (или возвращает undefined). Используется для функций без return или с return;.
never означает, что функция никогда не завершается (например, выбрасывает ошибку или бесконечный цикл).
Пример с void:
function logMessage(): void {
console.log('Hello');
// Неявно возвращает undefined
}
Пример с never:
function throwError(): never {
throw new Error('Oops!');
// Код после throw не выполняется
}
Ключевое отличие: void — функция завершается, never — функция не завершается.
Ответ 18+ 🔞
Да ты посмотри, какой тут разговор про void и never затеяли! Ну, блядь, как будто без этого жить нельзя, но раз уж начали, давай разберёмся, а то потом в коде пиздец будет.
Вот смотри, void — это как твой друг, который говорит: «Я сходил в магазин». И всё. Ни хлеба не принёс, ни водки. Просто сходил и вернулся с пустыми руками, по сути, с undefined в кармане. Функция сделала свои дела и на этом успокоилась. Возвращать она нихуя не обязана.
А вот never — это уже другая история, ёпта. Это как тот самый чувак, который зашёл в бар, крикнул «ВСЕМ ПИЗДА!» и полез в драку. Или ушёл в бесконечный цикл медитировать. Эта функция никогда-никогда нормально не закончится. Она либо ошибку выкинет нахуй, либо будет крутиться вечно, либо просто прервёт всё выполнение. Она в принципе не может вернуть какое-то значение, потому что она не доходит до точки возврата. Вот в чём, сука, принципиальная разница!
Смотри, примеры, чтобы вообще ни у кого сомнений не осталось, блядь:
// Вот это — void. Написал в консоль и свободен.
function logMessage(): void {
console.log('Hello');
// Типа возвращается undefined, но всем похуй
}
// А это — never. Точка невозврата, пиздец и могила.
function throwError(): never {
throw new Error('Oops!');
// Сюда, блядь, уже никто и никогда не доберётся
// Никакого return, никакого undefined — просто конец.
}
Короче, запомни раз и навсегда, чтобы не выглядеть как манда с ушами: void — функция завершилась, но ничего не отдала. never — она вообще не завершается в нормальном понимании. Всё, вопрос закрыт, можно идти пить чай.