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