Rest и spread объектов в TypeScript
Development, Java | Комментировать запись
Версия TypeScript 2.1 предоставляет нам rest и spread объектов, что позволяет легко деструктурировать, создавать поверхностные копии объектов и объединять их в новые объекты.
Spread объектов
Spread позволяет создать поверхностную копию объектов. Это можно сделать так:
const names = {cat: 'Bob', dog: 'Fred', alligator: 'Benedict'};
const newNames = { ...names };
console.log(newNames.cat); // Bob
Выполнить слияние нескольких объектов в новый объект – так:
const names1 = {cat: 'Bob'};
const names2 = {dog: 'Fred', alligator: 'Benedict'};
const newNames = { ...names1, ...names2 };
console.log(newNames.alligator); // Benedict
Также при помощи spread можно добавить новые свойства:
const names = {cat: 'Bob', dog: 'Fred', alligator: 'Benedict'};
const newNames = { ...names, hamster: 'Jude' };
console.log(newNames.hamster); // Jude
Обратите внимание, если свойство было вставлено несколько раз, выигрывает последнее:
const names = {cat: 'Bob', dog: 'Fred', alligator: 'Benedict'};
const newNames = { dog: 'Skip', ...names };
console.log(newNames.dog); // Fred
Rest объектов
Rest дает нам некоторые преимущества конвейеров ES2017.
const names = {cat: 'Bob', dog: 'Fred', alligator: 'Benedict'};
const { cat, ...otherAnimals } = names;
console.log(cat); // Bob
console.log(otherAnimals); // {dog: 'Fred', alligator: 'Benedict'}
В чистом JavaScript мы уже можем сделать подобное с помощью деструктуризации объектов.
Читайте также: Деструктуризация в JavaScript ES6
Tags: Javascript, TypeScript