@pabra/sortby
Version:
Provide typesafe function to be passed to Array.prototype.sort() to sort an Array of Objects by multiple keys.
12 lines (11 loc) • 523 B
TypeScript
declare type AnyRecord = Record<string, any>;
declare type Direction = 'asc' | 'desc';
declare type KeyOrExtractor<T extends AnyRecord> = ((thing: T) => T[keyof T]) | keyof T;
declare type KeyDirectionTuple<T extends AnyRecord> = [KeyOrExtractor<T>, Direction];
declare const enum Comparison {
lower = -1,
greater = 1,
equal = 0
}
export declare function by<T extends AnyRecord>(...keys: Readonly<(KeyDirectionTuple<T> | KeyOrExtractor<T>)[]>): (left: Readonly<T>, right: Readonly<T>) => Comparison;
export {};