编程语言
首页 > 编程语言> > JavaScript-导致eslint无阴影错误的结构化参数

JavaScript-导致eslint无阴影错误的结构化参数

作者:互联网

我的理解是像这样进行结构分解,它将从传入的参数对象中选择属性:

const last = "Smith" // unrelated const

const full = function({ first, last }) {
  return [first, last].filter(v => v).join(" ")
}

full({last: "Doe"}) // "Doe"
full({}) // ""

对于进口来说,这似乎是相同的.

import last from "last"; // unrelated import

export function full({ first, last }) {
  return [first, last].filter(v => v).join(" ")
}

full({last: "Doe"}) // "Doe"
full({}) // ""

为什么这会导致no-shadow eslint错误?

error ‘last’ is already declared in the upper scope no-shadow

在任何情况下,满员可以使用外部参照吗?没有权利?如何在不重命名无关的外部最后引用的情况下使语法接近于此?

解决方法:

导致eslint错误,因为last在导入和函数中声明为参数.因此,在函数内部,参数last掩盖了导入last.您只需要更改函数内参数的名称或关闭eslint.

import last from "last"; // unrelated import

export function full({ first, last: lst }) {
  return [first, lst].filter(v => v).join(" ")
}

full({last: "Doe"}) // "Doe"
full({}) // ""

…要么…

import last from "last"; // unrelated import

export function full({ first, last }) { // eslint-disable-line no-shadow
  return [first, last].filter(v => v).join(" ")
}

full({last: "Doe"}) // "Doe"
full({}) // ""

标签:destructuring,ecmascript-6,eslint,javascript
来源: https://codeday.me/bug/20191025/1932534.html