语法错误:剩余参数不能有默认值

rest 参数 具有 默认值 时,将出现 JavaScript 异常 "rest 参数不能具有默认值"。 由于 rest 参数始终创建数组,因此默认值将永远不会应用。

消息

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)

错误类型

出了什么问题?

默认参数 在参数未传递或作为 undefined 传递时为参数提供默认值。 rest 参数 收集传递给函数的所有剩余参数,并始终创建一个数组。 因此,为 rest 参数提供默认值没有意义。

示例

无效情况

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

有效情况

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

另请参阅