【问题标题】:Eslint: how to handle no-use-before-define for dependent functions?Eslint:如何处理依赖函数的 no-use-before-define?
【发布时间】:2019-06-25 19:30:53
【问题描述】:

我有 2 个相互调用的依赖函数,因此必须首先声明一个或另一个,这会引发 eslint no-use-before-define 错误。我知道我可以禁用该规则,但有没有更好的方法来做到这一点?

简化示例:

const a = number => {
  if (number === 0) {
    return b(number);
  }

  c(number);
}

const b = number => a(number + 1);

a(0);

我无法合并 ab,因为它们都需要在代码中的其他地方单独调用。

【问题讨论】:

  • 只需使用function 声明,提升即可解决所有问题。

标签: javascript ecmascript-6 eslint


【解决方案1】:

您可以使用回调或更高阶的函数。希望这会有所帮助。 请尝试此代码,并了解它是否适​​用于您的 linting 规则。

const a = (number, call) => {
  if (number === 0) {
    return call(number);
  }
  c(number);
}

const b = number => a(number + 1, b);

const c = number => console.log(1);

a(0, b);

【讨论】:

    猜你喜欢
    • 2021-12-30
    • 2021-06-25
    • 1970-01-01
    • 2017-09-11
    • 2021-05-04
    • 2020-03-23
    • 2020-08-01
    • 1970-01-01
    • 2016-05-20
    相关资源
    最近更新 更多