以下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()
但出现错误“意外的令牌=“

因此,如果您首先声明一个具有其属性类型的对象,那么从在对象(或数组)中返回其值的函数中设置这些属性的最干净的方法是什么?

最佳答案

使用Object.assign()可以在一个对象上设置多个字段:

const { cars, trucks } = mapDealerInventory();
Object.assign(carsAndTrucks, { cars, trucks });


或者,如果不需要其他任何carstrucks变量,并且mapDealerInventory()仅返回以下两个字段:

Object.assign(carsAndTrucks, mapDealerInventory());


carsAndTrucks将保留所有其他属性,并且carstrucks将被更改。

09-30 16:23