@monstermann/fn
Version:
A utility library for TypeScript.
36 lines (34 loc) • 1.12 kB
TypeScript
import { NonNil } from "../internals/types.js";
//#region src/option/filter.d.ts
/**
* `filter(target, predicate)`
*
* Filters a value based on a predicate function. If the value is `null` or `undefined`, it returns the value unchanged. If the value satisfies the predicate, it returns the value. Otherwise, it returns `undefined`.
*
* ```ts
* filter(5, (x) => x > 3); // 5
* filter(2, (x) => x > 3); // undefined
* filter(null, (x) => x > 3); // null
* filter(undefined, (x) => x > 3); // undefined
* ```
*
* ```ts
* pipe(
* 5,
* filter((x) => x > 3),
* ); // 5
*
* pipe(
* 2,
* filter((x) => x > 3),
* ); // undefined
* ```
*/
declare const filter: {
<T, U extends NonNil<T>>(predicate: (value: NoInfer<NonNil<T>>) => value is U): (target: T) => U | undefined;
<T>(predicate: (value: NoInfer<NonNil<T>>) => boolean): (target: T) => T | undefined;
<T, U extends NonNil<T>>(target: T, predicate: (value: NoInfer<NonNil<T>>) => value is U): U | undefined;
<T>(target: T, predicate: (value: NoInfer<NonNil<T>>) => boolean): T | undefined;
};
//#endregion
export { filter };