diff options
Diffstat (limited to 'node_modules/@babel/plugin-proposal-object-rest-spread/README.md')
| -rw-r--r-- | node_modules/@babel/plugin-proposal-object-rest-spread/README.md | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/node_modules/@babel/plugin-proposal-object-rest-spread/README.md b/node_modules/@babel/plugin-proposal-object-rest-spread/README.md deleted file mode 100644 index 9c1b785b..00000000 --- a/node_modules/@babel/plugin-proposal-object-rest-spread/README.md +++ /dev/null @@ -1,105 +0,0 @@ -# @babel/plugin-proposal-object-rest-spread - -> This plugin allows Babel to transform rest properties for object destructuring assignment and spread properties for object literals. - -## Example - -### Rest Properties - -```js -let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }; -console.log(x); // 1 -console.log(y); // 2 -console.log(z); // { a: 3, b: 4 } -``` - -### Spread Properties - -```js -let n = { x, y, ...z }; -console.log(n); // { x: 1, y: 2, a: 3, b: 4 } -``` - -## Installation - -```sh -npm install --save-dev @babel/plugin-proposal-object-rest-spread -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["@babel/plugin-proposal-object-rest-spread"] -} -``` - -### Via CLI - -```sh -babel --plugins @babel/plugin-proposal-object-rest-spread script.js -``` - -### Via Node API - -```javascript -require("@babel/core").transform("code", { - plugins: ["@babel/plugin-proposal-object-rest-spread"] -}); -``` - -## Options - -By default, this plugin will produce spec compliant code by using Babel's `objectSpread` helper. - -### `loose` - -`boolean`, defaults to `false`. - -Enabling this option will use Babel's `extends` helper, which is basically the same as `Object.assign` (see `useBuiltIns` below to use it directly). - -:warning: Please keep in mind that even if they're almost equivalent, there's an important difference between spread and `Object.assign`: **spread _defines_ new properties, while `Object.assign()` _sets_ them**, so using this mode might produce unexpected results in some cases. - -For detailed information please check out [Spread VS. Object.assign](http://2ality.com/2016/10/rest-spread-properties.html#spreading-objects-versus-objectassign) and [Assigning VS. defining properties](http://exploringjs.com/es6/ch_oop-besides-classes.html#sec_assigning-vs-defining-properties). - - -### `useBuiltIns` - -`boolean`, defaults to `false`. - -Enabling this option will use `Object.assign` directly instead of the Babel's `extends` helper. - -##### Example - -**.babelrc** - -```json -{ - "plugins": [ - ["@babel/plugin-proposal-object-rest-spread", { "loose": true, "useBuiltIns": true }] - ] -} -``` - -**In** - -```js -z = { x, ...y }; -``` - -**Out** - -```js -z = Object.assign({ x }, y); -``` - -## References - -* [Proposal: Object Rest/Spread Properties for ECMAScript](https://github.com/sebmarkbage/ecmascript-rest-spread) -* [Spec](http://sebmarkbage.github.io/ecmascript-rest-spread) -* [Spread VS. Object.assign](http://2ality.com/2016/10/rest-spread-properties.html#spreading-objects-versus-objectassign) -* [Assigning VS. defining properties](http://exploringjs.com/es6/ch_oop-besides-classes.html#sec_assigning-vs-defining-properties) |
