У JavaScript ми часто змінюємо вкладені значення об’єктів, не будучи впевненими, що всі проміжні рівні існують. Це призводить або до громіздких if-перевірок, або до ризику runtime-помилок. Стаття показує простий і сучасний підхід, який робить такі оновлення безпечними та читабельними.
Зайві перевірки та роздутий код.
const config = {
features: {
payments: true,
refunds: true
}
}
const isBillingEnabled = false
Раніше безпечне оновлення значення виглядало якось так:
// update
if (config.features.payments) {
config.features.payments = isBillingEnabled
}
// or
config.features.payments =
config.features.payments && isBillingEnabled
Завдяки сучасному JS (ES2021) ми можемо зробити це простіше.
Використання logical assignment operators (||=, &&=, ??=):
// Modern &&= operator (ES2021)
config.features.payments &&= isBillingEnabled
Таким чином &&= дозволяє безпечне оновлення тільки якщо значення null, undefined aбо false.
P.S. в коментарях автору трохи напхали, що таке використання цієї фічі є навіть небезпечним, т.я. може змінюватись тип даних і взагалі ця фіча юзлес
🌏 Оригінал: medium.com