2016-08-20 4 views
4

私はこのようないくつかの変数を宣言する非構造を使用しています:ネストされたオブジェクトとデフォルト値を使用して非構造

const { a, b, c } = require('./something'), 
    { e = 'default', f = 'default'} = c; 

は、単一の行にこれを作るための方法はありますか? 私が何かしようとしました:

const { a, b, c = { e = 'default', f = 'default'} } = require('./something'); 

をしかし、それは私にエラーを与える:

SyntaxError: Invalid shorthand property initializer

答えて

9

だけ:=を置き換える:

​​

デモ:

const { a, b, c: { e = 'default', f = 'default'} } = {a: 1, b: 2, c: {e: 3}} 
 
console.log(`a: ${a}, b: ${b}, e: ${e}, f: ${f}`)

それは印刷されます。

a: 1, b: 2, e: 3, f: default 
4

オブジェクトがこれはエラーを出力しますそれ

const { a, b, c: { e = 'default', f = 'default'}} = {a: 1, b: 2} 
 
console.log(`a: ${a}, b: ${b}, e: ${e}, f: ${f}`)
にCを持っていない場合、上記のコードは動作しません。完成のために 、あなたの可能性 "= {}" デフォルト

const { a, b, c: { e = 'default', f = 'default'} ={} } = {a: 1, b: 2} 
 
console.log(`a: ${a}, b: ${b}, e: ${e}, f: ${f}`)

ような単純な
関連する問題