@naturalcycles/js-lib
Version:
Standard library for universal (browser + Node.js) javascript
33 lines (32 loc) • 1.16 kB
TypeScript
import type { Comparator } from '../types.js';
import { Array2 } from './array2.js';
export interface SortedArrayOptions<T> {
/**
* Defaults to undefined.
* Undefined (default comparator) works well for String keys.
* For Number keys - use comparators.numericAsc (or desc),
* otherwise sorting will be wrong (lexicographic).
*/
comparator?: Comparator<T>;
}
/**
* Like Array, but keeps values sorted after every insertion.
*/
export declare class SortedArray<T> extends Array2<T> {
#private;
constructor(values?: Iterable<T>, opt?: SortedArrayOptions<T>);
push(...values: T[]): number;
unshift(...values: T[]): number;
splice(start: number, deleteCount?: number, ...items: T[]): T[];
static get [Symbol.species](): ArrayConstructor;
get [Symbol.toStringTag](): string;
private resort;
}
export declare class SortedStringArray extends SortedArray<string> {
constructor(values?: Iterable<string>);
get [Symbol.toStringTag](): string;
}
export declare class SortedNumberArray extends SortedArray<number> {
constructor(values?: Iterable<number>);
get [Symbol.toStringTag](): string;
}