#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
. Лично вы почувствуете, что местоположение ошибки-это ошибка, но ладно…