2015-11-26 75 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。 –