javascript エラー「Uncaught SyntaxError: Rest element must be last element」の解決方法

javascript エラー「Uncaught SyntaxError: Rest element must be last element」の解決方法

javascriptで、エラー「Uncaught SyntaxError: Rest element must be last element」が発生した場合の原因と解決方法を記述してます。スプレッド構文を指定する位置を最後にしていない場合などに発生します。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 108.0.5359.125

エラー内容

以下の、スプレッド構文を使用して配列を分割代入しようとしたコードで発生。

let [x, y, ...a, z] = [1, 2, 3, 4, 5, 6, 7, 8, 9]

console.log(x, y, a, z)

エラーメッセージ

Uncaught SyntaxError: Rest element must be last element

画像

firefox(バージョン107)では、以下のエラーとなります。

Uncaught SyntaxError: rest element may not have a trailing comma

画像

原因

スプレッド構文は、最後にしか使用できないため

解決方法

最後に使用する

let [x, y , z, ...a] = [1, 2, 3, 4, 5, 6, 7, 8, 9]

console.log(x, y, a, z)

実行結果

その他のエラー

最後にカンマを指定

以下の最後にカンマを使用したパターンでも同様のエラーが発生します。

let {a, b, ...x,} = {a:10, b:20, c:30, d:40}

console.log(a, b, x)

この場合は、カンマを外して使用すると解決します。

let {a, b, ...x} = {a:10, b:20, c:30, d:40}

console.log(a, b, x) // 10 20 {c: 30, d: 40}