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