Checks whether a value is a generic key / value object / Record<string, unknown>.
A record in this context means:
typeof value === 'object'
value is not null
value is not an array
Unlike isObject, this function does not attempt to preserve the original object type. All successful
results narrow to Record<string, unknown> making the returned value safe for key-indexed access but without any
knowledge of property names or expected value types.
This is useful when processing untyped JSON-like data structures, dynamic configuration blocks, response bodies,
or any case where a dictionary-style object is expected rather than a typed interface value.
Contrast With:
isObject → preserves known object types where possible; use when typing should remain intact.
isPlainObject → narrows to plain JSON objects only (no prototypes, no class instances).
isRecord() → always narrows to a dictionary-style record for keyed lookup.
Checks whether a value is a generic key / value object /
Record<string, unknown>.A record in this context means:
typeof value === 'object'nullUnlike isObject, this function does not attempt to preserve the original object type. All successful results narrow to
Record<string, unknown>making the returned value safe for key-indexed access but without any knowledge of property names or expected value types.This is useful when processing untyped JSON-like data structures, dynamic configuration blocks, response bodies, or any case where a dictionary-style object is expected rather than a typed interface value.
Contrast With:
isRecord()→ always narrows to a dictionary-style record for keyed lookup.