带有命名参数的ES6函数的ESLint no
我有一个像这样定义的函数:
const generate = (report={}, buffer=false) => {
// do stuff
}
注意两个参数如何具有默认值。
当我调用该函数并命名一个参数时,我得到一个no-undef ESLint错误。
generate(buffer = true);
ESLint说“缓冲区”没有定义。它没有检测到它是一个命名参数。有谁知道如何更改我的.eslintrc以解释命名参数。我在网上找不到任何东西。
提前致谢!
回答如下:Javascript中不存在您对此代码的期望。
你得到no-undef ESLint错误,因为从未声明过buffer
。由于JS中没有命名的params,你可以调用generate(true)
。
虽然这实际上会导致report
等于true
和buffer
被设置为默认值,你已经设置为false
。
为了获得更接近您所寻找的东西,您可以切换变量订单:
generate(buffer = false, report = {})
然后调用generate(true)
会导致调用参数:buffer = true
和report = {}
。
希望有道理。
为了进一步阅读,我建议:http://2ality/2011/11/keyword-parameters.html
带有命名参数的ES6函数的ESLint no
我有一个像这样定义的函数:
const generate = (report={}, buffer=false) => {
// do stuff
}
注意两个参数如何具有默认值。
当我调用该函数并命名一个参数时,我得到一个no-undef ESLint错误。
generate(buffer = true);
ESLint说“缓冲区”没有定义。它没有检测到它是一个命名参数。有谁知道如何更改我的.eslintrc以解释命名参数。我在网上找不到任何东西。
提前致谢!
回答如下:Javascript中不存在您对此代码的期望。
你得到no-undef ESLint错误,因为从未声明过buffer
。由于JS中没有命名的params,你可以调用generate(true)
。
虽然这实际上会导致report
等于true
和buffer
被设置为默认值,你已经设置为false
。
为了获得更接近您所寻找的东西,您可以切换变量订单:
generate(buffer = false, report = {})
然后调用generate(true)
会导致调用参数:buffer = true
和report = {}
。
希望有道理。
为了进一步阅读,我建议:http://2ality/2011/11/keyword-parameters.html