создается shallow-copy объекта, то есть оператором "..." (
spread operator) копируются свойства объекта, это сделано для того чтобы не терять данные при обновлении одного свойства
допустим у тебя был объект состояния такой структуры
let state = {
x:1,
y:2,
z:3
}
ты хочешь изменить поле y, для этого тебе нужно скопировать все поля и переназначить y
state = { ...state, y:25};
другой вопрос зачем копировать, если можно мутировать (MobX), это фишка называется иммутабельность (Redux), чтобы понять изменилось ли состояние быстрее проверить изменилась ли ссылка на объект, чем делать полный diff, в angular next такая штука в детекторе включается через ChangeDetectionStrategy.OnPush