TGViewer
Околодев Околодев @okolodev · 208 subscribers
Post #28 1.21K
​​JS switch expression

Хочу поделиться одним паттерном в JS. Альтернатива switch и вложенным тернарным операторам.

{
[true]: 'default value',
[someValue === 31337]: 'value 1',
[someCondition]: 'value 2',
[anotherCondition]: 'value 3',
}.true
Происходит здесь следующее. Мы объявляем объект и сразу же обращаемся к его ключу true. Внутри объекта вычисляемые ключи, которые вычисляются в true или false. Самый первый ключ — значение по умолчанию. Каждый следующий ключ, вычисляясь в true, затирает предыдущий. Последний ключ, который вычислился в true, и будет значением всего выражения.

Я называю этот паттерн switch expression, хотя его противники называют его pomoika.

👍 Это выражение (expression).
👍 Нет нужды городить вложенные тернарные операторы.
👍 Нет нужды даже объявлять какие-то функции. Всё работает прямо на месте.
👎 Не самый очевидный на первый взгляд код и, как следствие, вас могут побить.

Особенно полезен этот паттерн в styled-components.
  • 👍 2
More from @okolodev
  1. Nov 22, 2024Объединение нескольких роутеров keenetic с серыми IP в одну виртуальную сеть через ZeroTie…
  2. Nov 6, 2024Кнопка hyper В некоторых моих постах упомянута кнопка hyper. Объясняю, что это такое. Это…
  3. Nov 6, 2024Клавиатурные хаки Поделюсь своими хаками, которые ощутимо повышают мою продуктивность. Рас…
  4. Mar 31, 2024Посмотрел подряд обе дюны. Как говорится, гора родила залупу конскую. Главный замут — все…
  5. Mar 28, 2024Напоминаю: • Включите пин-код для симки. • Скройте тело писем и смсок из уведомлений на эк…
  6. Mar 20, 2024Жопа горит от эппловской фичи, что якобы можно на apple silicon маке запустить приложение…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →