The expected object type, defaults to Record<PropertyKey, unknown>
The value to check
Optionalis: Optional predicate or template to validate entries
True if the value is a plain object matching the validation; false otherwise
The predicate signature (value, key) places value before key to match the isArray guard pattern
and enable direct use of value guards like isString without wrapper lambdas.
Checks if a value is a plain object.
A plain object is one created by the Object constructor (or object literal syntax), with
Object.prototypeas its direct prototype. This excludes built-in objects like Date, RegExp, Array, Buffer, DOM elements, and objects created with custom constructors.Supports two validation modes:
(value, key) => booleanfunction called for each entryTemplates are closed by default: extra properties not in the template are rejected. Use the key symbol as wildcard to create open templates where extra properties are validated by the wildcard predicate (for instance, isAny to accept any value).