Задать вопрос
@ImagineTables

Есть ли какой-нибудь заменитель pattern matching в Javascript/ECMAScript?

Как я понимаю, предложение добавить PM в ECMAScript застряло на ранней стадии.

Чем можно воспользоваться в настоящий момент, чтобы не колхозить своё? Библиотека какая-нибудь, или обходной путь?

Хотелось бы вот такой, например, код заменить на что-то более читабельное:

function foo(param) { … }

const val = getVal();
foo(val === 0 ? 'none' : (val > 0 ? 'up' : 'down')); // вобще жестб
  • Вопрос задан
  • 138 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
@ImagineTables Автор вопроса
В итоге, остановился на https://github.com/shuckster/match-iz

Подкупило то, что “I've tried to, ahem, match the TC39 spec as closely as I could in anticipation of the hopeful day when I don't need to use it anymore”.

foo(match(val)
(
	when(i => i == 0, 'none'),
	when(i => i > 0, 'up'),
	when(i => i < 0, 'down')
));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Geminix
@Geminix
Фуллстек nuxt, .net разработчик
switch (Math.sign(value)) {
    case 0: return 'none';
    case 1: return 'up';
    default: return 'down';
  }
Ответ написан
Комментировать
Alexandroppolus
@Alexandroppolus
кодир
Тайпскриптовая библиотека
https://www.npmjs.com/package/ts-pattern
Ответ написан
Комментировать
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
Если хочется больше синтаксического сахара и читабельности - посмотрите в сторону CoffeeScript.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы