TSLint: цикл forIn должен быть отфильтрован

#angular #typescript #tslint #for-in-loop

Вопрос:

У меня есть ошибка с TSLINT в моем проекте, связанная с циклом forIn. Ошибка заключается в следующем:

 for (... in ...) statements must be filtered with an if statement
 

Я пробовал оба решения Object.prototype.hasOwnProerty.call(объект, ключ) и object.hasOwnProperty(ключ), но у меня все еще есть ошибка.

Вот код:

 const data = result.data
for (const key in data) {
  // Must use a if statement
  if (data.hasOwnProperty(key)) {
    // code...
  }
}
 

У вас есть какие-нибудь идеи о том, чего мне не хватает ?

Спасибо всем

Ответ №1:

Вы можете отключить это, добавив конфигурацию в файл lint.

ссылка : https://palantir.github.io/tslint/rules/forin/

ИЛИ второй вариант: Попробуйте это:

 const data = result.data;
let key;
for (key in data) {
  if (data.hasOwnProperty(key)) {
    // code...
  }
}```


 

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

1. Спасибо за первый совет, но я не могу из-за правил проекта, мне не разрешают этого делать.

Ответ №2:

Моя вина,

На самом деле, за пределами руля оператора if была одна строка, в которой используется ключ…

Примечание для себя: обязательно проверьте область действия оператора.