UNPKG

@monstermann/fn

Version:

A utility library for TypeScript.

33 lines (31 loc) 1.02 kB
import { NonNil } from "../internals/types.js"; import { AllUnionFields } from "type-fest"; //#region src/object/getOrElse.d.ts /** * `getOrElse(target, key, orElse)` * * Returns the value of `key` property from `target` object, or the result of calling `orElse` function with `target` if not found or falsy. * * ```ts * getOrElse({ a: 1, b: 2 }, "a", () => 0); // 1 * getOrElse({ a: 1, b: 2 }, "c", (obj) => Object.keys(obj).length); // 2 * ``` * * ```ts * pipe( * { a: 1, b: 2 }, * getOrElse("a", () => 0), * ); // 1 * * pipe( * { a: 1, b: 2 }, * getOrElse("c", (obj) => Object.keys(obj).length), * ); // 2 * ``` */ declare const getOrElse: { <T extends object, U extends keyof AllUnionFields<T>, V>(key: U, orElse: (target: NoInfer<T>) => V): (target: T) => NonNil<AllUnionFields<T>[U] | V>; <T extends object, U extends keyof AllUnionFields<T>, V>(target: T, key: U, orElse: (target: NoInfer<T>) => V): NonNil<AllUnionFields<T>[U] | V>; }; //#endregion export { getOrElse };