← Назад ко всем вопросам

Можно ли использовать Never в Switch Case

1️⃣ Как кратко ответить

В JavaScript нельзя использовать never в switch case, так как never — это тип TypeScript, который обозначает значения, которые никогда не происходят. В JavaScript нет аналогичного типа, и switch case работает с конкретными значениями, а не с типами.

2️⃣ Подробное объяснение темы

В JavaScript конструкция switch case используется для выполнения различных блоков кода в зависимости от значения выражения. Она позволяет сравнивать одно значение с несколькими возможными вариантами и выполнять соответствующий блок кода.

Пример использования switch case:

const fruit = 'apple';
​
switch (fruit) {
  case 'banana':
    console.log('This is a banana.');
    break;
  case 'apple':
    console.log('This is an apple.');
    break;
  default:
    console.log('Unknown fruit.');
}
  • const fruit = 'apple'; — объявление переменной fruit со значением 'apple'.
  • switch (fruit) { ... } — начало конструкции switch, которая будет сравнивать значение fruit.
  • case 'banana': — если fruit равно 'banana', выполнится следующий блок.
  • console.log('This is a banana.'); — вывод в консоль, если fruit равно 'banana'.
  • break; — завершает выполнение текущего блока case, предотвращая выполнение последующих блоков.
  • case 'apple': — если fruit равно 'apple', выполнится следующий блок.
  • console.log('This is an apple.'); — вывод в консоль, если fruit равно 'apple'.
  • default: — блок, который выполнится, если ни одно из значений case не совпало.
  • console.log('Unknown fruit.'); — вывод в консоль, если fruit не равно ни 'banana', ни 'apple'.

Теперь о never. never — это тип в TypeScript, который обозначает значения, которые никогда не встречаются. Например, функция, которая всегда выбрасывает ошибку или зацикливается, может иметь тип never.

Пример функции с типом never:

function error(message: string): never {
  throw new Error(message);
}
  • function error(message: string): never { ... } — объявление функции error, которая принимает строку message и возвращает тип never.
  • throw new Error(message); — выбрасывает новую ошибку с сообщением message, что делает невозможным достижение конца функции.

В контексте switch case в JavaScript нет возможности использовать never, так как switch case работает с конкретными значениями, а не с типами. never не имеет значения, которое можно было бы сравнить в switch case.

Таким образом, never не применим в switch case в JavaScript, так как это концепция, относящаяся к типам в TypeScript, а не к значениям, с которыми работает switch case.

Тема: TypeScript
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки