2015-12-14 4 views
6

Uso le funzioni ES6 con il compilatore babel. Ho una funzione che prende oggetto opzione come argomento:Come destrutturare l'argomento dell'opzione con tutti i valori predefiniti in ES6?

function myFunction({ option1 = true, option2 = 'whatever' }) { 
    console.log(option1, option2); 
    // do something... 
} 

Quando chiamo, destrutturazione accade e tutto funziona bene. voglio chiamare con le opzioni di default la maggior parte del tempo, in modo da fare:

myFunction({}); // true 'whatever' 

ma sembra po 'strano. Sarebbe molto più pulito basta chiamare:

myFunction(); // TypeError: Cannot read property 'option1' of undefined 

È possibile?

+0

si veda anche [ES6 oggetto destrutturazione funzione di assegnazione valore di parametro predefinito] (http://stackoverflow.com/q/ 38064644/1048572) – Bergi

risposta

12

Sì, basta fornire un valore predefinito per la completa argomento:

function myFunction({option1 = true, option2 = 'whatever'} = {}) { 
//               ^^^^ 
    console.log(option1, option2); 
    // do something... 
} 
Problemi correlati