2015-11-26 201 views
3

考慮以下ES6代碼:ES6解構嵌套的可選參數?

function foo({name, address: {street, postcode}}) { 
    console.log(name, street, postcode); 
} 

foo({name: 'John', address: {street: 'Foo', postcode: 1234}}); 
foo({name: 'Bob'}); 

第一個電話按預期工作。不過,我想讓address可選(streetpostcode應該是undefined)而不是拋出錯誤。這可能嗎?

回答

4

我找到了解決辦法:

function foo({name, address: {street, postcode} = {}}) { 
    console.log(name, street, postcode); 
} 
+1

是的,唯獨身邊'{}'不需要括號。不幸的是,jshint在這方面仍然失敗。 – 2015-11-26 03:57:33

+0

@torazaburo你是說如果'()'不存在,jshint會失敗? –

+1

@torazaburo如果你使用ES6,你應該考慮轉向eslint。 –