Skip to main content

deepEquals()

function deepEquals\<T\>(a: T, b: T): boolean;

Defined in: src/lib/utils.ts:148

Deep equality function for plain objects. Recursively compares all nested properties.

Handles:

  • Primitives (via ===)
  • Arrays (recursive element comparison)
  • Plain objects (recursive property comparison)
  • null/undefined

Does NOT handle (by design, as these aren't serializable):

  • Classes with prototypes
  • Functions
  • Symbols
  • Maps/Sets
  • Circular references

Type Parameters

Type Parameter
T

Parameters

ParameterTypeDescription
aTFirst value
bTSecond value

Returns

boolean

true if values are deeply equal

Example

deepEquals({ a: 1, b: { c: 2 } }, { a: 1, b: { c: 2 } }); // true
deepEquals([1, 2, 3], [1, 2, 3]); // true
deepEquals({ a: 1 }, { a: 2 }); // false