@monstermann/fn
Version:
A utility library for TypeScript.
25 lines (23 loc) • 737 B
TypeScript
import { Merge } from "type-fest";
//#region src/object/assign.d.ts
/**
* `assign(target, source)`
*
* Merges properties from `source` object into `target` object, creating a new object.
*
* Looser version of `merge` - `assign` allows you to redefine keys and add new properties.
*
* ```ts
* assign({ a: 1, b: 2 }, { b: 3, c: 4 }); // { a: 1, b: 3, c: 4 }
* ```
*
* ```ts
* pipe({ a: 1, b: 2 }, assign({ b: 3, c: 4 })); // { a: 1, b: 3, c: 4 }
* ```
*/
declare const assign: {
<T extends object, U extends object>(source: U): (target: T) => T extends unknown ? Merge<T, U> : never;
<T extends object, U extends object>(target: T, source: U): T extends unknown ? Merge<T, U> : never;
};
//#endregion
export { assign };