Saltar al contenido principal

@babel/plugin-transform-object-rest-spread

Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

información

Este plugin está incluido en @babel/preset-env, en ES2018

Ejemplo

Propiedades Rest

JavaScript
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 }

Propiedades Spread

JavaScript
let n = { x, y, ...z };
console.log(n); // { x: 1, y: 2, a: 3, b: 4 }

Instalación

npm install --save-dev @babel/plugin-transform-object-rest-spread

Uso

Mediante un archivo de configuración (Recomendado)

babel.config.json
{
"plugins": ["@babel/plugin-transform-object-rest-spread"]
}

Mediante la CLI

Shell
babel --plugins @babel/plugin-transform-object-rest-spread script.js

Mediante la API de Node

JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-object-rest-spread"],
});

Opciones

Por defecto, este plugin produce código conforme a la especificación utilizando el helper objectSpread de Babel.

loose

boolean, valor predeterminado: false.

Habilitar esta opción utilizará el helper extends de Babel, que es básicamente equivalente a Object.assign (consulte useBuiltIns más abajo para usarlo directamente).

precaución

Considere migrar al supuesto de alto nivel setSpreadProperties.

babel.config.json
{
"assumptions": {
"setSpreadProperties": true
}
}

Tenga en cuenta que aunque son casi equivalentes, existe una diferencia importante entre spread y Object.assign: spread define nuevas propiedades, mientras que Object.assign() las asigna, por lo que usar este modo podría producir resultados inesperados en algunos casos.

Para información detallada, consulte Spread VS. Object.assign y Asignación VS. definición de propiedades.

useBuiltIns

boolean, valor predeterminado: false.

Habilitar esta opción usará Object.assign directamente en lugar del helper extends de Babel.

Ejemplo

.babelrc

JSON
{
"assumptions": {
"setSpreadProperties": true
},
"plugins": [
["@babel/plugin-transform-object-rest-spread", { "useBuiltIns": true }]
]
}

Entrada

JavaScript
z = { x, ...y };

Salida

JavaScript
z = Object.assign({ x }, y);
consejo

Puedes leer más sobre cómo configurar opciones de plugins aquí

Referencias