Можно ли переопеределить тип с помощью Never

«Можно ли переопеределить тип с помощью Never» — вопрос из категории TypeScript, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, never нельзя использовать для переопределения типа. never — это специальный тип, который означает, что значение никогда не должно существовать. Он используется в таких случаях:

  1. Функция никогда не завершается (например, выбрасывает исключение или бесконечный цикл).
  2. В exhaustive checks (проверка на все варианты в union-типах).

Пример:

function throwError(message: string): never {
  throw new Error(message);
}

function infiniteLoop(): never {
  while (true) {}
}

Попытка переопределить тип с never приведёт к ошибке, так как never не может иметь значений. Например:

let x: never = 1; // Ошибка: Тип 'number' не может быть присвоен типу 'never'

never полезен для контроля потока типов и исключения недопустимых состояний.