#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 была одна строка, в которой используется ключ…
Примечание для себя: обязательно проверьте область действия оператора.