tc39 / proposal-object-rest-spread

Rest/Spread Properties for ECMAScript

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Object Rest/Spread Properties for ECMAScript

ECMAScript 6 introduces rest elements for array destructuring assignment and spread elements for array literals.

This proposal introduces analogous rest properties for object destructuring assignment and spread properties for object literals.

Specification

Rest properties collect the remaining own enumerable property keys that are not already picked off by the destructuring pattern. Those keys and their values are copied onto a new object.

let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }

Spread properties in object initializers copies own enumerable properties from a provided object onto the newly created object.

let n = { x, y, ...z };
n; // { x: 1, y: 2, a: 3, b: 4 }

Transpilers

Babel

Bublé

JSTransform

TypeScript

It is a Stage 4 proposal for ECMAScript.

This proposal only iterates over own properties. See why this matters.

About

Rest/Spread Properties for ECMAScript


Languages

Language:HTML 96.0%Language:Shell 4.0%