prefer-object-has-own
Запрещено использовать Object.prototype.hasOwnProperty.call() и предпочтительно использовать Object.hasOwn()
Некоторые проблемы, обнаруженные этим правилом, автоматически исправляемы с помощью параметра --fix командной строки
Очень часто код пишется так:
if (Object.prototype.hasOwnProperty.call(object, "foo")) {
console.log("has property foo");
}
Это распространённая практика, так как методы объекта Object.prototype иногда недоступны или переопределены (см. правило no-prototype-builtins).
Представленный в ES2022, Object.hasOwn() — более краткий вариант Object.prototype.hasOwnProperty.call():
if (Object.hasOwn(object, "foo")) {
console.log("has property foo")
}
Подробное описание правила
Примеры неправильного кода для этого правила:
/*eslint prefer-object-has-own: "error"*/
;
;
;
const hasProperty = ;
Примеры правильного кода для этого правила:
/*eslint prefer-object-has-own: "error"*/
Object.hasOwn(obj, "a");
const hasProperty = Object.hasOwn(object, property);
Когда не использовать
Это правило не следует использовать, если в вашем коде не поддерживается ES2022.
Версия
Это правило было введено в ESLint v8.5.0.
Дополнительная информация
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/prefer-object-has-own