Чтобы использовать сокращенное свойство, можно использовать Object.assign
:
const personByName = name => {
const person = http(name);
return Object.assign({ method: 'byName' }, person && { person });
}
Последующие необъектные Object.assign
аргументы эффективно игнорируются, поэтому ложный person
не делаетне влияет на результат.
Это будет работать, если ожидается, что person
будет объектом, как показано в исходном коде.
В случае, если не разрешены только неопределенные значения, это:
Object.assign({ method: 'byName' }, person !== undefined && { person });