UNPKG

@monstermann/fn

Version:

A utility library for TypeScript.

71 lines (69 loc) 1.39 kB
import { NonNil } from "../internals/types.js"; import { OrElse } from "./internals/types.js"; //#region src/map/getOrElse.d.ts /** * `getOrElse(map, key, orElse)` * * Gets the value associated with `key` from `map`, calling `orElse` with the map if the key doesn't exist or the value is nullable. * * ```ts * getOrElse( * new Map([ * ["a", 1], * ["b", null], * ]), * "a", * () => 0, * ); // 1 * * getOrElse( * new Map([ * ["a", 1], * ["b", null], * ]), * "b", * () => 0, * ); // 0 * * getOrElse( * new Map([ * ["a", 1], * ["b", null], * ]), * "c", * (map) => map.size, * ); // 2 * ``` * * ```ts * pipe( * new Map([ * ["a", 1], * ["b", null], * ]), * getOrElse("a", () => 0), * ); // 1 * * pipe( * new Map([ * ["a", 1], * ["b", null], * ]), * getOrElse("b", () => 0), * ); // 0 * * pipe( * new Map([ * ["a", 1], * ["b", null], * ]), * getOrElse("c", (map) => map.size), * ); // 2 * ``` */ declare const getOrElse: { <K, V, U>(key: NoInfer<K>, orElse: OrElse<K, V, U>): (target: ReadonlyMap<K, V>) => NonNil<V> | U; <K, V, U>(target: ReadonlyMap<K, V>, key: NoInfer<K>, orElse: OrElse<K, V, U>): NonNil<V> | U; }; //#endregion export { getOrElse };