Страницы

Поиск по вопросам

понедельник, 8 июля 2019 г.

В чем разница между void и never в TypeScript?

В TypeScript есть два псевдо-типа данных обозначающих "ничто": void и never
Чем они отличаются и как понять когда применять void, а когда never?


Ответ

Псевдо-тип never означает, что функция никогда не возвращает значения. Такое может быть, например, в случае если функция всегда выбрасывает исключение:
function f(): never { throw new Error('Never return'); }
Псевдо-тип void означает, что функция возвращает undefined. Это происходит в случае, если поток выполнения доходит до конца функции, не встретив конструкции return
function f(arg): void { console.log(arg); }
или когда конструкция return используется без указания аргумента:
function f(arg): void { if (arg < 0) { return; } console.log(arg); }

Если говорить о выборе между void и never, то вам почти всегда нужно выбирать именно void. Все дело в том, что never используется в совсем уж экзотических ситуациях, поэтому его можно смело исключать из набора типов "на каждый день".

Комментариев нет:

Отправить комментарий