В чем разница между Void и Never

Ответ

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 — она вообще не завершается в нормальном понимании. Всё, вопрос закрыт, можно идти пить чай.