получение неиспользуемых переменных для любой рекурсивной функции?

#javascript #typescript #recursion #eslint

Вопрос:

Я понял, что любая рекурсивная функция приведет к no-unused-vars ошибке, которую я не понимаю, почему

Простая рекурсия, как показано ниже

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

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

введите описание изображения здесь

Комментарии:

1. Если вы измените const на var, это все равно произойдет?

2. @Тушаршахи: да, все еще получаю это

Ответ №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

Комментарии:

1. интересно, я ожидал, что ошибка будет брошена на факториал рядом const , а не внутри factorial . Лично вы почувствуете, что местоположение ошибки-это ошибка, но ладно…