在相互递归中处理@typescript-eslint/no-use-before-define

问题描述 投票:0回答:2

假设我们有两个互相调用的函数:

const a = () => {
  console.log("a");

  if (Math.random() > 0.9) {
    // Dodging infinite recursion.
    return;
  }

  b(); // 'b' was used before it was defined. (@typescript-eslint/no-use-before-define) eslint
};

const b = () => {
  console.log("b");

  a();
};

这个答案中的第一种方法(

/* global b */
位于文件顶部)对我来说不起作用,而我认为在初始化之前使用
const
声明变量是不可能的。

那么处理这个 linting 错误的最佳方法是什么?

typescript eslint typescript-eslint
2个回答
1
投票

我认为如果在分配函数之前声明变量就可以了。像这样的东西:

let a: () => void, b: () => void;
a = () => {...}
b = () => {...}

不确定这比忽略上述行的规则或完全禁用该规则更好。


0
投票

尝试像这样声明你的函数

function a(){
 console.log('say something');
}
© www.soinside.com 2019 - 2024. All rights reserved.