【问题标题】:getting no-unused-vars for any recursive function?为任何递归函数获取 no-unused-vars?
【发布时间】:2021-11-13 21:47:41
【问题描述】:

我意识到任何递归函数都会遇到 no-unused-vars 错误,我不明白为什么

简单递归如下

const factorial = (x: number) => {
  if (x === 0) return 1;

  return x * factorial(x - 1);
};

【问题讨论】:

  • 如果你把 const 改成 var 还会出现吗?
  • @TusharShahi: 是的,仍然得到它

标签: javascript typescript recursion eslint


【解决方案1】:

事情是这样的:如果你声明一个未导出的变量(这意味着它不能在文件外使用),你将不得不在文件中使用它或导出函数。所以,你可以这样做:

export const factorial = (x: number): number => {
  if (x === 0) return 1;

  return x * factorial(x - 1);
};

或者调用文件中的函数:

const factorial = (x: number): number => {
  if (x === 0) return 1;

  return x * factorial(x - 1);
};

factorial(42);

请看这里:https://tsplay.dev/w11ekw

【讨论】:

  • 有趣的是,我期待错误会在const 旁边的阶乘上引发,而不是在内部factorial 上。个人会觉得错误的位置是错误的但是哦好吧……
猜你喜欢
  • 2021-02-22
  • 2020-03-17
  • 2019-07-06
  • 1970-01-01
  • 2020-03-01
  • 2020-01-25
  • 2018-11-22
相关资源
最近更新 更多