SyntaxError: rest parameter may not have a default

The JavaScript exception "rest parameter may not have a default" occurs when a rest parameter has a default value. Because the rest parameter always creates an array, the default value would never apply.

Message

SyntaxError: Rest parameter may not have a default initializer (V8-based) SyntaxError: rest parameter may not have a default (Firefox) SyntaxError: Unexpected token '='. Expected a ')' or a ',' after a parameter declaration. (Safari) 

Error type

What went wrong?

A default parameter gives a parameter a default value if the argument is not passed or passed as undefined. A rest parameter collects all the remaining arguments passed to the function and always creates an array. Therefore, it doesn't make sense to have a default value for a rest parameter.

Examples

Invalid cases

js
function doSomething(...args = []) {} 

Valid cases

js
function doSomething(...args) { // args is always an array } 

See also