Ошибка Typescript ESLint для параметров Prefer-Rest-Params

Я пытаюсь интегрировать фрагмент аналитики Segment.io в проект Typescript.

Получая ошибку ESLint, я не могу работать. Вот код:

analytics.factory = function (method: any) {
  return function () {
    const args = Array.prototype.slice.call(arguments)
    args.unshift(method)
    analytics.push(args)
    return analytics
  }
}

И ошибка:

error  Use the rest parameters instead of 'arguments'  prefer-rest-params

Мой Typescript немного заржавел, я безрезультатно пробовал следующее:

  • Array.prototype.slice.call (это, ... аргументы)
  • Array.prototype.slice.call (ноль, ... аргументы)

Любая помощь очень ценится!


person timothyclifford    schedule 16.11.2020    source источник
comment
В соответствии с правилом используйте остальные параметры, а не arguments ключевое слово: function (...args) {   -  person VLAZ    schedule 16.11.2020


Ответы (1)


Для тех, кто попадает сюда с подобной проблемой, вот исправление:

analytics.factory = function(method: any) {
  return function(...args: any[]) {
    args.unshift(method);
    analytics.push(args);
    return analytics;
  };
};
person timothyclifford    schedule 16.11.2020
comment
Вам не нужен const args = Array.prototype.slice.call(argz); - он просто преобразует argz в массив, а argz уже массив. Удалите эту строку и переименуйте определение в function(...args: any[]). Опять же, правило четко объясняет, что является допустимым, а что - нет, поэтому я не знаю, откуда у вас этот код. - person VLAZ; 17.11.2020
comment
Обновлено, как было предложено - person timothyclifford; 18.11.2020