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);