Spec-Zone.ru › ESLint

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")
}

Подробное описание правила

Примеры неправильного кода для этого правила:

Открыть в Playground
/*eslint prefer-object-has-own: "error"*/

Object.prototype.hasOwnProperty.call(obj, "a");

Object.hasOwnProperty.call(obj, "a");

({}).hasOwnProperty.call(obj, "a");

const hasProperty = Object.prototype.hasOwnProperty.call(object, property);

Примеры правильного кода для этого правила:

Открыть в Playground
/*eslint prefer-object-has-own: "error"*/

Object.hasOwn(obj, "a");

const hasProperty = Object.hasOwn(object, property);

Параметры

У этого правила нет параметров.

Когда не следует использовать это правило

Это правило следует использовать только в том случае, если в вашей кодовой базе поддерживается ES2022.

Версия

Это правило появилось в ESLint v8.5.0.

Дополнительная литература

Object.hasOwn() — JavaScript | MDN
developer.mozilla.org

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/prefer-object-has-own

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API