@arrows/array
Version:
Functional tools for JS arrays
31 lines (30 loc) • 1.21 kB
TypeScript
declare type CompareFn<T> = (a: T, b: T) => number;
declare type _Sort = <T>(compareFn: CompareFn<T>, arr: T[]) => T[];
declare type _Sort2 = <T>(compareFn: CompareFn<T>) => (arr: T[]) => T[];
declare type CurriedSort = _Sort & _Sort2;
declare type Sort = CurriedSort & {
num(a: number[]): number[];
numDesc(a: number[]): number[];
str(a: string[]): string[];
strDesc(a: string[]): string[];
locale(a: string[]): string[];
localeDesc(a: string[]): string[];
};
/**
* Creates a new, sorted array.
* Have built-in methods for sorting numerical and string arrays.
*
* @param compareFn Compare function
* @param arr Initial array
* @returns New array
*
* @method num Sorts numerical arrays in an ascending order
* @method numDesc Sorts numerical arrays in a descending order
* @method str Sorts string arrays in an ascending order using comparison operators
* @method strDesc Sorts string arrays in a descending order using comparison operators
* @method locale Sorts string arrays in an ascending order using localeCompare
* @method localeDesc Sorts string arrays in a descending order using localeCompare
*/
declare const sort: Sort;
export { sort };
export default sort;