2016-01-20 15 views
9

Come si può rinominare il target durante la distruzione dell'oggetto?Oggetto ES6/ES2015 destrutturazione e modifica della variabile target

const b = 6; 
const test = { a: 1, b: 2 }; 
const {a, b as c} = test; // <-- `as` does not seem to be valid in ES6/ES2015 
// a === 1 
// b === 6 
// c === 2 
+0

Hai y hai provato '{a, b: c} = test'? – vaultah

+1

'{b as c}' è per la sintassi di importazione ES6, che è molto _not_ destructuring FYI. Traintendere questa differenza può portare a confusione su come funzionano i moduli. – loganfsmyth

+0

Correlati: [Distruzione dell'oggetto con nomi di proprietà che non sono nomi di variabili validi] (https://stackoverflow.com/q/36577568/1048572) – Bergi

risposta

19

È possibile assegnare nuovi nomi di variabile, come mostrato in questo MDN Example

var o = {p: 42, q: true}; 
... 
// Assign new variable names 
var {p: foo, q: bar} = o; 
... 
console.log(foo); // 42 
console.log(bar); // true 

Quindi, nel tuo caso, il codice sarà così

const b = 6; 
const test = {a: 1, b: 2}; 
let {a, b: c} = test; 
console.log(a, b, c); 
// 1 6 2 

Online Babel Demo

Problemi correlati