Files
railwaysystem/RuoYi-Vue/ruoyi-ui/node_modules2/@antv/util/src/is-plain-object.ts
T
2026-09-10 15:40:10 +08:00

25 lines
675 B
TypeScript

import isObjectLike from './is-object-like';
import isType from './is-type';
const isPlainObject = function(value: any): value is object {
/**
* isObjectLike(new Foo) => false
* isObjectLike([1, 2, 3]) => false
* isObjectLike({ x: 0, y: 0 }) => true
* isObjectLike(Object.create(null)) => true
*/
if (!isObjectLike(value) || !isType(value, 'Object')) {
return false;
}
if (Object.getPrototypeOf(value) === null) {
return true;
}
let proto = value;
while (Object.getPrototypeOf(proto) !== null) {
proto = Object.getPrototypeOf(proto);
}
return Object.getPrototypeOf(value) === proto;
};
export default isPlainObject;