◆ ...param のあとにカンマがあると最後に配置しないといけないというエラー
  ◆ 次の要素があるとみなされるよう
  ◆ 複数行で書くとき末尾コンマで揃わないのが微妙

前回の for-of に引き続いて 今更知った分割代入の仕様です
分割代入はこんな感じで書きます

const { foo, bar } = value

指定しなかったキーのプロパティをオブジェクトにまとめて受け取るなら

const { foo, bar, ...rest } = value

というものです
普段は変数が少ないので 1 行で書いてますが 変数が多かったときに複数行にしました

const {
foo,
bar,
baz,
} = value

末尾コンマが書けます
統一感があっていいですよね

この状態で ... を使って残りのプロパティを取得しようとしました

const {
foo,
bar,
baz,
...others,
} = value

エラーになりました

Uncaught SyntaxError: Rest element must be last element

... で指定する変数は最後に来ないといけないそうです
最後にあるのですが 「,」 が入ると次があるとみなされるのか構文エラーです

見た目が揃っていてきれいなので末尾コンマを書きたいのですがダメそうです
ES2015 からは関数呼び出しでも末尾コンマが書けるようになって 末尾コンマできれいに揃えたいんですけどね

console.log(
foo,
bar,
)

だめな理由が次に要素を配置できないからというものなので 次に要素を配置できる spread の方は問題なくコンマを書けます

const obj = {
foo: "bar",
...value,
}

こういうことができますからね

const obj = {
foo: "bar",
...value,
baz: "qux",
}

関数呼び出しも同じです

console.log(
foo,
bar,
...array,
)

末尾カンマを許可した理由は 視覚的に揃っていて美しいからじゃなくて 要素の追加や削除をするときに楽になって diff をとったときの差分もわかりやすくなるという実用的なことからでしょうし仕方ないのかもしれません

const {
foo,
bar,
...rest
} = value

に baz を追加するとしたら bar の次でしょうし 最後に固定で他と扱いの違う rest に末尾カンマがなくても 利便性の点では影響ありません
それでもつい 「,」 を書いてしまいますし 統一感のなさに気持ち悪さも感じるので 書けてほしいなと思うところです

カンマを書けないならその行で閉じカッコにすればいいかなって思いましたが これはなんか違う感があります

const {
foo,
bar.
...rest } = value

フォーマッターが勝手に書き換えてしまいそうですし

1 行で書いていればこれまで通り不満に感じるところはないので できる限り 1 行で収めようと思います