[JavaScript] オブジェクトのプロパティを条件指定で追加する方法

背景

コンポーネントの Props で条件が合致した際に object を追加したいケースで必要になった。

方法

スプレッド構文論理積を使う。

const obj = {
  ...(condition && { key: "value" }),
};
  • conditiontrueであれば、{ key: 'value' }が追加される
  • conditionfalseであれば、何も追加されない

ユースケース

a要素に条件によってtarget="_blank"を付け外しをすることがあり、下記のような記述をした。

<a href="#" {...(isExternal && { target: "_blank" })}>
  Link
</a>