UNPKG

@monstermann/fn

Version:

A utility library for TypeScript.

28 lines (26 loc) 871 B
import { Merge } from "type-fest"; //#region src/object/mapAssign.d.ts /** * `mapAssign(target, map)` * * Merges `target` object with the result of calling `map` function on `target`, creating a new object. * * Looser version of `mapMerge` - `mapAssign` allows you to redefine keys and add new properties. * * ```ts * mapAssign({ a: 1, b: 2 }, (obj) => ({ c: obj.a + obj.b })); // { a: 1, b: 2, c: 3 } * ``` * * ```ts * pipe( * { a: 1, b: 2 }, * mapAssign((obj) => ({ c: obj.a + obj.b })), * ); // { a: 1, b: 2, c: 3 } * ``` */ declare const mapAssign: { <T extends object, U extends object>(map: (target: NoInfer<T>) => U): (target: T) => T extends unknown ? Merge<T, U> : never; <T extends object, U extends object>(target: T, map: (target: NoInfer<T>) => U): T extends unknown ? Merge<T, U> : never; }; //#endregion export { mapAssign };