«Программы предназначены для чтения людьми и лишь случайно для выполнения компьютерами». — Дональд Кнут

Я читал исходный код Redux-Promise-Middleware и наткнулся на следующий блок кода:

const getAction = (newPayload, isRejected) => ({
  type: `${type}_${isRejected ? REJECTED : FULFILLED}`,
  ...newPayload ? {
    payload: newPayload
  } : {},
  ...!!meta ? { meta } : {},
  ...isRejected ? {
    error: true
  } : {}
});

Конечно, вы можете написать это так, но почему? Почему странная строка разрывается, разделяя тернарный оператор на несколько строк? Почему бы не добавить дополнительный набор скобок, чтобы было более очевидно, что оператор расширения действует после тернарного оператора? Почему нет:

const getAction = (newPayload, isRejected) => ({
  type: `${type}_${isRejected ? REJECTED : FULFILLED}`,
  ...( newPayload ? { payload: newPayload } : {} ),
  ...( !!meta ? { meta } : {} ),
  ...( isRejected ? { error: true } : {} )
});

У меня могут быть какие-то дополнительные символы, но, по крайней мере, структура объекта и троичный тест более очевидны. Я не уверен, что мне нравится синтаксис !!. Есть ли причина использовать!!val поверхBoolean(val)?