Задать вопрос
@Res1dentEvil

ESLint: no-param-reassign?

Подскажите плз, ESLint выдает ошибку "Assignment to property of function parameter 'span' no-param-reassign".

spans.forEach((span, index) => {
    span.textContent = currLangKeys[index];
  });


Как исправить, не переписывая правила ESLint ?
  • Вопрос задан
  • 820 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Вариантов несколько.

1) Итерировать по currLangKeys, так получится, что вы не меняете итерируемое значение.
2) Добавить на эту строчку // eslint-disable-next-line no-param-reassign
3) Прописать в ignorePropertyModificationsFor название вашей переменной. Можно придумать какой-то общее название htmlElement, на которое не будет действовать это lint правило. Но это крайне неявный способ, сложно будет держать в голове как должна называться переменная, чтобы на нее не ругалось правило.

Я за второй вариант, т.к. он явно в коде выражает, что в этой строчке автор понимает что делает. Еще стоит правда подумать над выпиливанием этого правила, если вы на это можете влиять. Оно слишком категорично, и если человек захочет так накосячить с переопределением аргумента/итерируемого массива, он просто скопирует ссылку на объект отдельной строчкой, и eslint правило не заметит подвоха. От дураков не защищает, а не дуракам лишь мешает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы