@monstermann/fn
Version:
A utility library for TypeScript.
26 lines (24 loc) • 773 B
TypeScript
import { NonNil } from "../internals/types.js";
import { AllUnionFields } from "type-fest";
//#region src/object/getOr.d.ts
/**
* `getOr(target, key, or)`
*
* Returns the value of `key` property from `target` object, or the `or` value if not found or falsy.
*
* ```ts
* getOr({ a: 1, b: 2 }, "a", 0); // 1
* getOr({ a: 1, b: 2 }, "c", 0); // 0
* ```
*
* ```ts
* pipe({ a: 1, b: 2 }, getOr("a", 0)); // 1
* pipe({ a: 1, b: 2 }, getOr("c", 0)); // 0
* ```
*/
declare const getOr: {
<T extends object, U extends keyof AllUnionFields<T>, V>(key: U, or: V): (target: T) => NonNil<AllUnionFields<T>[U] | V>;
<T extends object, U extends keyof AllUnionFields<T>, V>(target: T, key: U, or: V): NonNil<AllUnionFields<T>[U] | V>;
};
//#endregion
export { getOr };