Ambos Object.assign e objeto propagação só fazem uma fusão superficial. Um exemplo do problema: // No object nesting const x = { a: 1 } const y = { b: 1 } const z = { ...x, ...y } // { a: 1, b: 1 } A saída é o que você esperaria. No entanto, se eu tentar isso: // Object nesting const x = { a: {...