Ответ
Нет, never нельзя использовать для переопределения типа. never — это специальный тип, который означает, что значение никогда не должно существовать. Он используется в таких случаях:
- Функция никогда не завершается (например, выбрасывает исключение или бесконечный цикл).
- В 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 полезен для контроля потока типов и исключения недопустимых состояний.