以下TypeScript起作用:
const carsAndTrucks = { cars: [], trucks: [] };
const { cars, trucks } = mapDealerInventory();
carsAndTrucks.cars = cars
carsAndTrucks.trucks = trucks
console.log(carsAndTrucks)
function mapDealerInventory() {
return {cars: [1,2], trucks:['a', 'b']}
}
但是有没有一种方法可以避免仅为了破坏mapDealerInventory()
的返回值而设置新变量的方法?我希望这是可能的:
{ carsAndTrucks.cars, carsAndTrucks.trucks } = mapDealerInventory()
但出现错误“意外令牌=“
因此,如果您首先声明一个具有其属性类型的对象,那么从函数中设置这些属性(在对象(或数组)中返回它们的值)的最干净方法是什么?
答案 0 :(得分:1)
这应该有效:
({ cars, trucks } = carsAndTrucks)
PL也会看到这个答案
How to destructure an object to an already defined variable?
答案 1 :(得分:0)
使用Object.assign()在一个对象上设置多个字段:
const { cars, trucks } = mapDealerInventory();
Object.assign(carsAndTrucks, { cars, trucks });
或者,如果不需要其他任何变量,cars
和trucks
,而mapDealerInventory()
仅返回以下两个字段:
Object.assign(carsAndTrucks, mapDealerInventory());
carsAndTrucks
将保留所有其他属性,并且cars
和trucks
将被更改。