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