最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

带有命名参数的ES6函数的ESLint no

IT培训 admin 7浏览 0评论

带有命名参数的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等于truebuffer被设置为默认值,你已经设置为false

为了获得更接近您所寻找的东西,您可以切换变量订单:

generate(buffer = false, report = {})然后调用generate(true)会导致调用参数:buffer = truereport = {}

希望有道理。

为了进一步阅读,我建议: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等于truebuffer被设置为默认值,你已经设置为false

为了获得更接近您所寻找的东西,您可以切换变量订单:

generate(buffer = false, report = {})然后调用generate(true)会导致调用参数:buffer = truereport = {}

希望有道理。

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

发布评论

评论列表 (0)

  1. 暂无评论