具有命名参数的ES6函数上的ESLint no-undef

时间:2019-02-19 16:45:24

标签: node.js eslint

我有一个这样定义的函数:

const generate = (report={}, buffer=false) => {
  // do stuff
}

注意这两个参数如何具有默认值。

当我调用该函数并命名一个参数时,会出现no-undef ESLint错误。

generate(buffer = true);

ESLint表示未定义“缓冲区”。它没有检测到它是一个命名参数。有谁知道如何更改我的.eslintrc以解决命名参数。我在网上找不到任何东西。

谢谢!

1 个答案:

答案 0 :(得分:2)

您期望从此代码中获得的内容在Javascript中不存在。

由于没有声明buffer,因此会出现no-undef ESLint错误。由于JS中没有命名参数,因此您可以调用generate(true)

尽管实际上会导致report等于true,并且buffer被设置为默认值(您已将其设置为false)。

要获得更接近所需的结果,可以切换可变顺序:

generate(buffer = false, report = {}) 然后调用generate(true)将导致具有以下参数的调用: buffer = truereport = {}

希望如此。

为进一步阅读,我建议:http://2ality.com/2011/11/keyword-parameters.html