tamda
Version:
Practical functional programming library for TypeScript
29 lines (28 loc) • 2 kB
TypeScript
import { Binary, Denary, Novenary, Nullary, Octonary, Quaternary, Quinary, Senary, Septenary, Ternary, Unary } from '../operators';
/**
* Creates a function that evaluates whether values returned by all `functions` are truthy.
*
* i.e. `fn1() && fn2()`
*
* @note Ramda's `both`.
* @example
* const larger = curry((limit, num) => num > limit);
* const smaller = curry((limit, num) => num < limit);
* const between = (min, max) => and(larger(min), smaller(max));
* const between0and10 = between(0, 10);
* between0and10(5);
* // true
* between0and10(15);
* // false
*/
export declare function and(...functions: Nullary<unknown>[]): Nullary<boolean>;
export declare function and<A>(...functions: Unary<A, unknown>[]): Unary<A, boolean>;
export declare function and<A, B>(...functions: Binary<A, B, unknown>[]): Binary<A, B, boolean>;
export declare function and<A, B, C>(...functions: Ternary<A, B, C, unknown>[]): Ternary<A, B, C, boolean>;
export declare function and<A, B, C, D>(...functions: Quaternary<A, B, C, D, unknown>[]): Quaternary<A, B, C, D, boolean>;
export declare function and<A, B, C, D, E>(...functions: Quinary<A, B, C, D, E, unknown>[]): Quinary<A, B, C, D, E, boolean>;
export declare function and<A, B, C, D, E, F>(...functions: Senary<A, B, C, D, E, F, unknown>[]): Senary<A, B, C, D, E, F, boolean>;
export declare function and<A, B, C, D, E, F, G>(...functions: Septenary<A, B, C, D, E, F, G, unknown>[]): Septenary<A, B, C, D, E, F, G, boolean>;
export declare function and<A, B, C, D, E, F, G, H>(...functions: Octonary<A, B, C, D, E, F, G, H, unknown>[]): Octonary<A, B, C, D, E, F, G, H, boolean>;
export declare function and<A, B, C, D, E, F, G, H, I>(...functions: Novenary<A, B, C, D, E, F, G, H, I, unknown>[]): Novenary<A, B, C, D, E, F, G, H, I, boolean>;
export declare function and<A, B, C, D, E, F, G, H, I, J>(...functions: Denary<A, B, C, D, E, F, G, H, I, J, unknown>[]): Denary<A, B, C, D, E, F, G, H, I, J, boolean>;