TypeScript 2.1 brings us object rest & spread to easily destructure, make shallow copies and merge objects into new ones.
Create shallow copy of objects:
const names = {cat: 'Bob', dog: 'Fred', alligator: 'Benedict'};
const newNames = { ...names };
console.log(newNames.cat); // Bob
You can merge multiple objects into a new object:
const names1 = {cat: 'Bob'};
const names2 = {dog: 'Fred', alligator: 'Benedict'};
const newNames = { ...names1, ...names2 };
console.log(newNames.alligator); // Benedict
You can add new properties too, along with using a spread:
const names = {cat: 'Bob', dog: 'Fred', alligator: 'Benedict'};
const newNames = { ...names, hamster: 'Jude' };
console.log(newNames.hamster); // Jude
Note that if a property ends up being inserted multiple times, the last one in wins:
const names = {cat: 'Bob', dog: 'Fred', alligator: 'Benedict'};
const newNames = { dog: 'Skip', ...names };
console.log(newNames.dog); // Fred
Similar to what we can already do in pure JavaScript with object destructuring, rest brings us something that’s in the pipelines for ES2017:
const names = {cat: 'Bob', dog: 'Fred', alligator: 'Benedict'};
const { cat, ...otherAnimals } = names;
console.log(cat); // Bob
console.log(otherAnimals); // {dog: 'Fred', alligator: 'Benedict'}
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Alligator.io is a developer-focused resource that offers tutorials and insights on a wide range of modern front-end technologies, including Angular 2+, Vue.js, React, TypeScript, Ionic, and JavaScript.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.