Можно ли деструктурировать до уже объявленных переменных? - PullRequest
0 голосов
/ 25 июня 2018

Работает следующий 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() но выдает ошибку "Неожиданный токен ="

Итак, если вы сначала объявляете объект с его типами свойств, каков самый чистый способ установить эти свойства из функции, которая возвращает их значения в объекте (или массиве)?

1 Ответ

0 голосов
/ 25 июня 2018

Используйте Object.assign () для установки нескольких полей на объекте:

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

Или, если вам не нужны переменные cars и trucks для чего-либоelse и mapDealerInventory() возвращает только эти два поля:

Object.assign(carsAndTrucks, mapDealerInventory());

carsAndTrucks сохранит все остальные свойства, а cars и trucks будут изменены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...