Skip to main content
Module

std/_util/has_own_property.ts

Deno standard library
Go to Latest
File
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
/** * Determines whether an object has a property with the specified name. * Avoid calling prototype builtin `hasOwnProperty` for two reasons: * * 1. `hasOwnProperty` is defined on the object as something else: * * const options = { * ending: 'utf8', * hasOwnProperty: 'foo' * }; * options.hasOwnProperty('ending') // throws a TypeError * * 2. The object doesn't inherit from `Object.prototype`: * * const options = Object.create(null); * options.ending = 'utf8'; * options.hasOwnProperty('ending'); // throws a TypeError * * @param obj A Object. * @param v A property name. * @see https://eslint.org/docs/rules/no-prototype-builtins */export function hasOwnProperty<T>(obj: T, v: PropertyKey): boolean { if (obj == null) { return false; } return Object.prototype.hasOwnProperty.call(obj, v);}