indexed-collection
Version:
A zero-dependency library of classes that make filtering, sorting and observing changes to arrays easier and more efficient.
15 lines (12 loc) • 417 B
text/typescript
/**
* Delegate for extracting key from the given item
*/
export type KeyExtract<T = unknown, KeyT = unknown> = SingleKeyExtract<T, KeyT> | MultipleKeyExtract<T, KeyT>;
export type SingleKeyExtract<T = unknown, KeyT = unknown> = {
isMultiple?: boolean;
(item: T): KeyT;
};
export type MultipleKeyExtract<T = unknown, KeyT = unknown> = {
isMultiple: true;
(item: T): readonly KeyT[] | ReadonlySet<KeyT>;
};