Function deepMerge

Recursively merges source object into target object. Handles nested objects, arrays, and primitives. Does not mutate original objects.

const target = { a: 1, b: { c: 2 } };
const source = { b: { d: 3 } };
deepMerge(source)(target);
// => { a: 1, b: { c: 2, d: 3 } }
  • Type Parameters

    • S extends Record<string, unknown>

      Source object type

    Parameters

    • source: S

      Source object to merge from

    Returns <T extends Record<string, unknown>>(target: T) => T & S

    Merged object with source values recursively merged into target