Как я могу добавить свойство к внутреннему объекту в Typescript с помощью оператора распространения? - PullRequest
0 голосов
/ 13 июня 2019

У меня есть следующий объект

let car = { year: 2004, type: {name: "BMW"} }

Теперь я хочу добавить свойство к внутреннему объекту "type". Я хочу сделать это с помощью оператора распространения, так как мне нужен новый объект, потому что существующий является неизменяемым объектом состояния. Результат должен быть:

{ year: 2004, type: {name: "BMW", modell: "3er"}}

Как я могу это сделать?

Ответы [ 2 ]

4 голосов
/ 13 июня 2019
const car = { year: 2004, type: {name: "BMW"} };
const modifiedCar = {...car, type: {...car.type, modell: "3er"}};
2 голосов
/ 13 июня 2019

Попробуйте это:

(Неизменен)

let car = { year: 2004, type: {name: "BMW"} } // changed
Object.assign(car.type, {modell: "3er"});

console.log(car)

(неизменяемый)

let car = { year: 2004, type: {name: "BMW"} } // still the same
const result = Object.assign({}, car, {type:{...car.type, modell: "3er"}});

console.log(result)
...