检查值是否为一个普通对象
"普通对象"定义为原型为 Object.prototype 或 null 的非数组对象。 这排除了 Array、Date、Map、Set、Error、RegExp 等所有内置类实例。
Object.prototype
null
Array
Date
Map
Set
Error
RegExp
支持泛型:isPlainObject<MyType>(val) 通过后将 val 收窄为 MyType。
isPlainObject<MyType>(val)
val
MyType
— 待检查的任意值
true 当且仅当 val 是普通对象,同时收窄为 T(默认 Record<string, unknown>)
true
Record<string, unknown>
if (isPlainObject(value)) { console.log(Object.keys(value));}isPlainObject({}); // trueisPlainObject(Object.create(null)); // true(null 原型)isPlainObject([]); // falseisPlainObject(new Date()); // false Copy
if (isPlainObject(value)) { console.log(Object.keys(value));}isPlainObject({}); // trueisPlainObject(Object.create(null)); // true(null 原型)isPlainObject([]); // falseisPlainObject(new Date()); // false
检查值是否为一个普通对象
"普通对象"定义为原型为
Object.prototype或null的非数组对象。 这排除了Array、Date、Map、Set、Error、RegExp等所有内置类实例。支持泛型:
isPlainObject<MyType>(val)通过后将val收窄为MyType。