Nuevo operador spread
Se escribe con ...
y nos permite hacer una copia superficial de un objeto o array
const obj1 = {name: 'Edu', surname: 'Rey', age: 42};
const obj2 = {...obj1};
// Cambiando una propiedad del mismo
const obj3 = {...obj1, name : 'Juan'};
// Junto con desestructuración
const apellido = 'García';
const obj4 = {...obj1, apellido };
// O todo junto
const obj5 = {...obj1, name: 'Pepe', apellido };
// Con arrays también funciona
const array2 = [...array1];
NO hacer
const obj1 = {name: 'Edu', surname: 'Rey', age: 42};
const obj2 = obj1; // Iguala por referencia.
obj2.name = 'Miau';
console.log(obj1.name, obj2.name);
// Miau, Miau
OJO
Sólo copia el primer nivel del objeto. Los subobjetos los seguiría referenciando.