Функция выдает ошибку защиты eslint.org - PullRequest
0 голосов
/ 18 июня 2020

Использование этого для l oop для создания строки запроса без проблем.

  for (const key in parameters) {
    const value = parameters[key];
    qs += `${encodeURIComponent(key)}=${encodeURIComponent(value)}&`;
  }

До сих пор я заметил красную линию ESLint. В документации указано следующее:

https://eslint.org/docs/rules/guard-for-in

/*eslint guard-for-in: "error"*/

for (key in foo) {
    if (Object.prototype.hasOwnProperty.call(foo, key)) {
        doSomething(key);
    }
}

for (key in foo) {
    if ({}.hasOwnProperty.call(foo, key)) {
        doSomething(key);
    }
}

~

1 Ответ

2 голосов
/ 19 июня 2020

Просто оберните код внутри for l oop вот так

for (const key in parameters) {
    if (!parameters.hasOwnProperty(key)) { continue; }
    const value = parameters[key];
    qs += `${encodeURIComponent(key)}=${encodeURIComponent(value)}&`;
}

parameters.hasOwnProperty(key) эта проверка, существует ли свойство / ключ в объекте parameters

, но это все еще, вероятно, не то, что вы хотите, поскольку теперь он говорит: for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.eslintno-restricted-syntax

Как предлагается там, этот линт очищается:

  Object.keys(parameters).forEach((key) => {
    const value = parameters[key];
    qs += `${encodeURIComponent(key)}=${encodeURIComponent(value)}&`;
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...