@antv/util
Version:
> AntV 底层依赖的工具库,不建议在自己业务中使用。
25 lines (22 loc) • 664 B
text/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;