linting时的阴影变量

时间:2018-03-06 15:37:23

标签: angular typescript angular-cli lint

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

(可能有一种更优雅的做事方式?)

我得到了

  

阴影变量:'数据'

我尝试取消let而不是const,但lint再次抱怨data is never modified, use const instead

我的所有测试都通过了,组件按预期工作。我如何摆脱这个错误?

编辑: 有效的是 this.validate = (boo = data) => null;

那有多可怕?

编辑:

我实际上想要将参数传递给validate函数并同时保持箭头函数结构。类似的东西:

this.validate(data) = () => null;

1 个答案:

答案 0 :(得分:1)

写作时

this.validate = (data) => null;

this.validate是一个带有一个参数data的函数,这意味着您无法再引用原始的data变量。

如果您将此参数称为其他内容,则可以正常运行。

this.validate = (param) => null;

修改

根据您的评论,您似乎不想定义,而是调用this.validate功能。在这种情况下只做

this.validate(data);