@yookue/ts-multi-map
Version:
Multiple key/value map & range map for typescript
36 lines (35 loc) • 1.61 kB
TypeScript
import { type MultiValueMapEntries } from "..";
export declare class MultiValueMap<K, V> implements Omit<Map<K, V[]>, 'delete' | 'forEach' | 'get' | 'has' | 'set' | 'entries' | 'keys' | 'values' | 'push'> {
private readonly map;
static of<K, V>(entries?: MultiValueMapEntries<K, V>): MultiValueMap<K, V>;
constructor(entries?: MultiValueMapEntries<K, V>);
get(key: K, defaults?: V[]): V[] | undefined;
set(key: K, values: V[]): void;
push(key: K, values: V[]): void;
clear(): void;
keys(): K[];
values(): V[][];
entries(): [K, V[]][];
deleteByKey(key: K): boolean;
deleteByKeys(keys: K[]): boolean;
deleteByValue(value: V): boolean;
deleteByValues(values: V[]): boolean;
deleteValueOfKey(key: K, value: V): boolean;
forEach(callback: (values?: V[], key?: K) => void, thisArg?: any): void;
forEachIndexing(callback: (values?: V[], key?: K, index?: number) => void, thisArg?: any): void;
forEachBreakable(callback: (values?: V[], key?: K) => boolean, thisArg?: any): void;
hasKey(key: K): boolean;
hasKeyValue(key: K, value: V): boolean;
hasAnyKeys(keys: K[]): boolean;
hasAllKeys(keys: K[]): boolean;
hasValue(values: V[], exact?: boolean): boolean;
hasAnyValues(values: V[][], exact?: boolean): boolean;
hasAllValues(values: V[][], exact?: boolean): boolean;
isEmpty(): boolean;
isNotEmpty(): boolean;
getKey(values: V[], defaults?: K): K | undefined;
[Symbol.iterator](): IterableIterator<[K, V[]]>;
get size(): number;
get [Symbol.toStringTag](): string;
toString(): string;
}