2016-11-07 8 views
3

私は割り当てと提案されたオブジェクトスプレッドシンタックスを少し演奏しています。条件付きで何かを割り当てる方法があるのだろうか?オブジェクトに条件付き属性を割り当てる方法はあり条件付き代入とECMAScriptで提案されたオブジェクトスプレッド構文

const requestHeaders = { 
    ...headers, { 
     Authorization: accessToken ? `Bearer ${accessToken}` : void 0, // I don't want Authorization to appear in the object if it's null or undefined, but this doesn't work 
    } 
}; 

const h = { 
    Accept: 'application/json', 
    ...requestHeaders, 
}, 

例えば、私は現在、以下があります。

const requestHeaders = { ...headers }; 

if (accessToken) { 
    requestHeaders.Authorization = `Bearer ${accessToken}`; 
} 

const h = { 
    Accept: 'application/json', 
    ...requestHeaders, 
}, 

そして、私はこのようなもので、それを単純化したいです?

おかげ

+4

FYIでは、これらのことを「ES7」と呼ぶのは誤った名前であり、構文機能として提案されています。 ES7は完了し、公開されており、その一部ではありません。 – loganfsmyth

+0

彼らはまた、 "ES2017"ではない、彼らは仕様の任意のバージョンに着陸するか、または任意のバージョンに着陸することはできません。それらは単なる「構文提案」です。 – loganfsmyth

+2

['... ...は演算子ではありません](http://stackoverflow.com/a/37152508/218196) –

答えて

7

あなたは、あなたがしたいキー、または空のオブジェクトを持つオブジェクトを広めるのいずれか、このスタイル

const requestHeaders = { 
    ...headers, 
    ...(accessToken ? { 
     Authorization: `Bearer ${accessToken}`, 
    } : {}), 
}; 

を使用することができます。

関連する問題