@monstermann/fn
Version:
A utility library for TypeScript.
26 lines (25 loc) • 820 B
TypeScript
import { UnionToIntersection } from "type-fest";
//#region src/object/forEach.d.ts
type ForEachCallback<T extends object> = T extends unknown ? UnionToIntersection<{ [K in keyof T]: (prop: [key: K, value: T[K]], target: T) => unknown }[keyof T]> : never;
/**
* `forEach(target, fn)`
*
* Executes `fn` function for each key-value pair in `target` object and returns the original object.
*
* ```ts
* forEach({ a: 1, b: 2 }, ([key, value]) => console.log(key, value)); // { a: 1, b: 2 }
* ```
*
* ```ts
* pipe(
* { a: 1, b: 2 },
* forEach(([key, value]) => console.log(key, value)),
* ); // { a: 1, b: 2 }
* ```
*/
declare const forEach: {
<T extends object>(fn: ForEachCallback<T>): (target: T) => T;
<T extends object>(target: T, fn: ForEachCallback<T>): T;
};
//#endregion
export { forEach };