UNPKG

super-utils-plus

Version:

A superior alternative to Lodash with improved performance, TypeScript support, and developer experience

31 lines (30 loc) 1.17 kB
/** * 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]; };