В языке программирования TypeScript существует особый тип данных - 'never'. Этот тип используется для указания значения, которое никогда не вернется. Как правило, 'never' используется в функциях, которые не возвращаются - это бесконечные циклы или функции, которые всегда бросают исключение.
function throwError(message: string): never {
throw new Error(message);
}
function infiniteLoop(): never {
while (true) {};
}
В обоих примерах выше, функции throwError
и infiniteLoop
имеют тип возврата 'never'. Первая функция всегда бросает исключение, вторая - бесконечный цикл.
Важно отметить, что 'never' не является синонимом или подмножеством типа 'void'. Например, функция, не возвращающая значение, имеет тип 'void', а не 'never'.
function logMessage(message: string): void {
console.log(message);
}
Функция logMessage
просто выводит сообщение в консоль и ничего не возвращает, поэтому ее тип возврата - 'void'.
В итоге, 'never' в TypeScript является уникальным типом, представляющим собой значения, которые никогда не возвращаются. Он обычно используется в сценариях, когда функция никогда не завершается свое выполнение нормальным образом.