negate
function
Creates a function that negates the result of the predicate func.
Installation
Import
import { negate } from '@tulx/utils';Source Code
Implementation
/**
* Creates a function that negates the result of the predicate func.
*
* @param predicate - The predicate to negate.
* @returns Returns the new negated function.
*
* @example
* ```ts
* const isEven = (n: number) => n % 2 === 0;
* filter([1, 2, 3, 4, 5, 6], negate(isEven)); // [1, 3, 5]
* ```
*/
export function negate<T extends (...args: unknown[]) => boolean>(
predicate: T
): (...args: Parameters<T>) => boolean {
return function (this: unknown, ...args: Parameters<T>): boolean {
return !predicate.apply(this, args);
};
}
Example
import { negate } from '@tulx/utils';
const isEven = (n: number) => n % 2 === 0;
filter([1, 2, 3, 4, 5, 6], negate(isEven)); // [1, 3, 5]Related Functions
after
The opposite of before; this method creates a function that invokes func once it's called n or more times.
ary
Creates a function that invokes func, with up to n arguments, ignoring any additional arguments.
before
Creates a function that invokes func, with the this binding and arguments of the created function, while it's called less than n times.
bind
Creates a function that invokes func with the this binding of thisArg and partials prepended to the arguments it receives.
bindKey
Creates a function that invokes the method at object[key] with partials prepended to the arguments it receives.
curry
Creates a function that accepts arguments of func and either invokes func returning its result, or returns a function that accepts the remaining arguments.