linting 时的阴影变量
Shadow variable when linting
检查以下代码时:
public doStuf = (): Promise<null> => {
const data = new Stuff(this.value);
if (this.state === 'test') {
data.mail = {
object: label,
files: this.dropppedFiles || []
};
return this.validate = (data) => null;
} else {
return this.validate = (data) => null;
}
}
我将 doStuff()
作为子组件的承诺传递,这就是为什么我需要使用 this.validate = (data) => null;
保持上下文
(也许有更优雅的做事方式?)
我明白了
Shadowed variable: 'data'
我尝试取消 let
而不是 const
但 lint 再次抱怨 data is never modified, use const instead
我的所有测试都通过了,组件按预期工作。我如何摆脱这个错误?
编辑:
有效的是
this.validate = (boo = data) => null;
这有多可怕?
编辑:
其实我是想给validate函数传参,同时保留箭头函数结构。类似于:
this.validate(data) = () => null;
写的时候
this.validate = (data) => null;
this.validate
是一个只有一个参数的函数,data
,这意味着你不能再引用原来的data
变量。
如果您将此参数命名为其他名称,它将 运行 正常。
this.validate = (param) => null;
编辑
从您的评论看来,您不想定义而是调用 this.validate
函数。在这种情况下就做
this.validate(data);
检查以下代码时:
public doStuf = (): Promise<null> => {
const data = new Stuff(this.value);
if (this.state === 'test') {
data.mail = {
object: label,
files: this.dropppedFiles || []
};
return this.validate = (data) => null;
} else {
return this.validate = (data) => null;
}
}
我将 doStuff()
作为子组件的承诺传递,这就是为什么我需要使用 this.validate = (data) => null;
(也许有更优雅的做事方式?)
我明白了
Shadowed variable: 'data'
我尝试取消 let
而不是 const
但 lint 再次抱怨 data is never modified, use const instead
我的所有测试都通过了,组件按预期工作。我如何摆脱这个错误?
编辑:
有效的是
this.validate = (boo = data) => null;
这有多可怕?
编辑:
其实我是想给validate函数传参,同时保留箭头函数结构。类似于:
this.validate(data) = () => null;
写的时候
this.validate = (data) => null;
this.validate
是一个只有一个参数的函数,data
,这意味着你不能再引用原来的data
变量。
如果您将此参数命名为其他名称,它将 运行 正常。
this.validate = (param) => null;
编辑
从您的评论看来,您不想定义而是调用 this.validate
函数。在这种情况下就做
this.validate(data);