@babel/plugin-transform-destructuring
Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →
Questo plugin è incluso in @babel/preset-env
Esempi
In
let { x, y } = obj;
let [a, b, ...rest] = arr;
Out
function _toArray(arr) { ... }
let _obj = obj,
x = _obj.x,
y = _obj.y;
let _arr = arr,
_arr2 = _toArray(_arr),
a = _arr2[0],
b = _arr2[1],
rest = _arr2.slice(2);
Installazione
- npm
- Yarn
- pnpm
- Bun
npm install --save-dev @babel/plugin-transform-destructuring
yarn add --dev @babel/plugin-transform-destructuring
pnpm add --save-dev @babel/plugin-transform-destructuring
bun add --dev @babel/plugin-transform-destructuring
Utilizzo
Con un file di configurazione (Consigliato)
{
"plugins": ["@babel/plugin-transform-destructuring"]
}
Tramite CLI
babel --plugins @babel/plugin-transform-destructuring script.js
Tramite Node API
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-destructuring"],
});
Opzioni
loose
boolean, predefinito false.
Abilitando questa opzione si presuppone che l'elemento da destrutturare sia un array e non verrà utilizzato Array.from su altri iterabili.
Considera di migrare all'assunzione di livello superiore iterableIsArray.
{
"assumptions": {
"iterableIsArray": true
}
}
useBuiltIns
boolean, predefinito false.
Abilitando questa opzione verrà utilizzato Object.assign direttamente invece dell'helper extends di Babel.
Esempio
.babelrc
{
"plugins": [
["@babel/plugin-transform-destructuring", { "useBuiltIns": true }]
]
}
In
var { ...x } = z;
Out
var _z = z,
x = Object.assign({}, _z);
Maggiori informazioni sulla configurazione delle opzioni del plugin sono disponibili qui
allowArrayLike
boolean, predefinito false
Aggiunto in: v7.10.0
Questa opzione consente la destrutturazione di oggetti array-like utilizzando la sintassi di destrutturazione degli array.
Un oggetto array-like è un oggetto con una proprietà length: ad esempio { 0: "a", 1: "b", length: 2 }. Nota che, come gli array veri, gli oggetti array-like possono avere "buchi": { 1: "a", length: 3 } equivale a [ (hole), "a", (hole) ].
Sebbene destrutturare oggetti array-like come se fossero array non sia conforme alle specifiche, esistono molti oggetti che sarebbero iterabili nei browser moderni con supporto a Symbol.iterator. Alcuni esempi degni di nota sono le collezioni DOM, come document.querySelectorAll("img.big"), che rappresentano il caso d'uso principale per questa opzione.
Nota che Babel consente la destrutturazione di arguments nei motori legacy anche quando questa opzione è disabilitata, poiché è definito come iterabile nelle specifiche ECMAScript.
Considera di migrare all'assunzione di livello superiore arrayLikeIsIterable.
{
"assumptions": {
"arrayLikeIsIterable": true
}
}