remeda
Version:
A utility library for JavaScript and Typescript.
57 lines (55 loc) • 2.33 kB
text/typescript
import { Merge } from "type-fest";
//#region src/merge.d.ts
/**
* Merges two objects into one by combining their properties, effectively
* creating a new object that incorporates elements from both. The merge
* operation prioritizes the second object's properties, allowing them to
* overwrite those from the first object with the same names.
*
* Equivalent to `{ ...data, ...source }`.
*
* @param data - The destination object, serving as the basis for the merge.
* Properties from this object are included in the new object, but will be
* overwritten by properties from the source object with matching keys.
* @param source - The source object, whose properties will be included in the
* new object. If properties in this object share keys with properties in the
* destination object, the values from the source object will be used in the
* new object.
* @returns An object fully containing `source`, and any properties from `data`
* that don't share a name with any property in `source`.
* @signature
* R.merge(data, source)
* @example
* R.merge({ x: 1, y: 2 }, { y: 10, z: 2 }) // => { x: 1, y: 10, z: 2 }
* @dataFirst
* @category Object
*/
declare function merge<T, Source>(data: T, source: Source): Merge<T, Source>;
/**
* Merges two objects into one by combining their properties, effectively
* creating a new object that incorporates elements from both. The merge
* operation prioritizes the second object's properties, allowing them to
* overwrite those from the first object with the same names.
*
* Equivalent to `{ ...data, ...source }`.
*
* @param source - The source object, whose properties will be included in the
* new object. If properties in this object share keys with properties in the
* destination object, the values from the source object will be used in the
* new object.
* @returns An object fully containing `source`, and any properties from `data`
* that don't share a name with any property in `source`.
* @signature
* R.merge(source)(data)
* @example
* R.pipe(
* { x: 1, y: 2 },
* R.merge({ y: 10, z: 2 }),
* ); // => { x: 1, y: 10, z: 2 }
* @dataLast
* @category Object
*/
declare function merge<Source>(source: Source): <T>(data: T) => Merge<T, Source>;
//#endregion
export { merge };
//# sourceMappingURL=merge-DdblO-pX.d.cts.map