Хочу поделиться одним паттерном в 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.