merge-deep-ts
Version:
Deep fast merge JavaScript objects with circular references handling and TypeScript support
14 lines (13 loc) • 814 B
TypeScript
import { type MergedMany, type NonMergeable, type Nullable } from "./types.js";
/**
* Deep merges all arguments into a single object. Objects could have circular references.
* @param args Array of objects to merge
* @returns The deeply merged object.
* @example
* import merge from "merge-fast";
* merge([{ a: 1 }, { b: 2 }]); // { a: 1, b: 2 }
* merge([{ a: 1 }, { a: 2 }]); // { a: 2 }
*/
declare function merge<T extends [...Rest], // → Tuple
Rest extends Params[], RestArrayType extends Rest, MergeableObjectType extends Record<PropertyKey, Params>, MergeableMapType extends Map<Params, Params>, MergeableSet extends Set<Params>, Params extends [...RestArrayType] | MergeableObjectType | MergeableMapType | MergeableSet | NonMergeable<Rest> | Nullable>(args: T): MergedMany<T>;
export default merge;