both
Returns true
if both functions return true
for a given set of arguments, false
otherwise.
Use the logical and (&&
) operator on the result of calling the two functions with the supplied args
.
typescript
type Func<T> = (...args: T[]) => any;
export const both =
<T = any>(f: Func<T>, g: Func<T>) =>
(...args: T[]) =>
f(...args) && g(...args);
typescript
const isEven = (num: number) => num % 2 === 0;
const isPositive = (num: number) => num > 0;
const isPositiveEven = both(isEven, isPositive);
isPositiveEven(4); // true
isPositiveEven(-2); // false