首页 > 解决方案 > linter 错误静态方法 lodash typescript

问题描述

linter在调用时报告了此错误_.isEqual

https://github.com/typescript-eslint/typescript-eslint/blob/v4.22.0/packages/eslint-plugin/docs/rules/unbound-method.md

你知道我该如何纠正这个错误吗?

const liste = computed(() => { return _.uniqWith(_.map(liste.value, 'contrat'), _.isEqual) })

标签: typescriptlodash

解决方案


有一些选项:

  1. 由于_.isEqual不在this其体内使用,因此在这种特殊情况下您可以放心地忽略此规则:

    /* eslint-disable-next-line @typescript-eslint/unbound-method */
    const liste = computed(() => { return _.uniqWith(_.map(liste.value, 'contrat'), _.isEqual) })
    
  2. 您可以使用包装函数来保留调用上下文:

    const liste = computed(() => { return _.uniqWith(_.map(liste.value, 'contrat'), (a, b) => _.isEqual(a, b)) })
    
  3. 显式绑定调用上下文。有点难看,但可以完成工作:

    const liste = computed(() => { return _.uniqWith(_.map(liste.value, 'contrat'), _.isEqual.bind(_)) })
    

推荐阅读