super-utils-plus
Version:
A superior alternative to Lodash with improved performance, TypeScript support, and developer experience
31 lines (30 loc) • 1.17 kB
TypeScript
/**
* Type definitions for SuperUtilsPlus
*/
export type AnyFunction = (...args: any[]) => any;
export type Predicate<T> = (value: T, index: number, collection: T[]) => boolean;
export type ObjectPredicate<T> = (value: T[keyof T], key: string, obj: T) => boolean;
export type Comparator<T> = (a: T, b: T) => number;
export type PropertyPath = string | number | symbol | (string | number | symbol)[];
export type Collection<T> = T[] | Record<string, T>;
export type PropertyName = string | number | symbol;
export type IterateeFunction<T, R> = (value: T, index: number, collection: T[]) => R;
export type ObjectIterateeFunction<T, R> = (value: any, key: string, object: T) => R;
export type Iteratee<T, R> = PropertyName | [PropertyName, any] | IterateeFunction<T, R>;
export interface DebounceOptions {
leading?: boolean;
trailing?: boolean;
maxWait?: number;
}
export interface ThrottleOptions {
leading?: boolean;
trailing?: boolean;
}
export interface TemplateOptions {
interpolate?: RegExp;
escape?: RegExp;
evaluate?: RegExp;
}
export type DeepPartial<T> = {
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
};