Да, я тоже.
Это то, что я склонен делать (немедленно вызываемая функция):
signup: async userInfo => {
const user = new User((({ email, password, privacyPolicyConsent, username }) =>
({ email, password, privacyPolicyConsent, username })
))(userInfo));
}
Он сводит его к одному выражению, но не удаляетпроблема дублированного (и уродливого) кода.
Возможно, для этого могут быть полезны функции:
const dstr = (obj, ...keys) => keys.reduce((o, k) => { o[k] = obj[k]; return o; }, {});
// ...
const user = dstr(userInfo, email, password, privacyPolicyConsent, username);
Или вы можете использовать этот метод Reduction для его создания inline:)
Заинтригован, какие есть альтернативы.
(РЕДАКТИРОВАТЬ) Выше предполагается, что вы не можете предварительно разрушить объект.