Прежде всего, вы можете отключить правило eslint, если оно вам не нужно. Как говорится, for...in
будет перебирать наследуемые свойства, поэтому его часто использовали в сочетании с hasOwnProperty
, но новый синтаксис Object.keys
короче.
Во-вторых, вам не нужно hasOwnProperty
, если вы используете Object.keys
. Он уже перебирает только собственные свойства.
В-третьих, eslint не нравится, когда вы используете hasOwnProperty
для объекта, потому что он может быть переназначен на другую функцию. Я думаю, он хочет, чтобы вы использовали Object.prototype.hasOwnProperty.call(object, key)
, если вам это действительно нужно, но я бы сказал, что есть много случаев, когда вы знаете, что безопаснее использовать более короткую версию. Опять же, вы можете отключить правило, если вы знаете последствия.