以前は
const newObject = Object.assign({newProp:'hoge'},oldObject);
とObject.assignを使って書いていたのですが、
const newObject2 = {newProp:'hoge',...oldObject};
とした方がスマートな気がしてこちらを最近は使っています。
スプレッド構文を使うと、
const newObject3 = {...oldObject,newProp:'hoge'};
とすることで、newPropがすでにoldObjectにあっても、oldObjectを汚さずに上書きできるのも良い感じです。
(Object.assignは第一引数のObjectを書き換えてしまう)