You can add key-value pairs to an object using the ES6 spread operator:
> { one: 1, ...{ hello: "world" } }
{ one: 1, hello: "world" }
By combining the spread operator with some boolean logic, you can conditionally add key-value pairs to an object:
> {
one: 1,
...(isArriving && { hello: "world" }),
}
Depending on the value of isArriving
:
// isArriving === true
{ one: 1, hello: "world" }
or
// isArriving === false
{ one: 1 }
This is useful for dynamically building up some configuration object or data payload.