@xyh19/multi-map
Version:
Map which Allow Multiple Values for the same Key
35 lines (33 loc) • 1.08 kB
TypeScript
declare class MultiMap<K, V> {
constructor(entries?: Iterable<(readonly [K, V])> | null, unique?: boolean);
get(key: K): Iterable<V>;
set(key: K, ...values: V[]): void;
has(key: K, value?: V): boolean;
delete(key: K, value?: V): boolean;
clear(): void;
keys(): IterableIterator<K>;
values(): IterableIterator<V>;
entries(): IterableIterator<[K, V]>;
[Symbol.iterator](): IterableIterator<[K, V]>;
readonly size: number;
readonly count: number;
}
declare class MultiWeakMap<K extends object, V> {
constructor(entries?: Iterable<(readonly [K, V])> | null, unique?: boolean);
get(key: K): Iterable<V>;
set(key: K, ...values: V[]): void;
has(key: K, value?: V): boolean;
delete(key: K, value?: V): boolean;
}
declare global {
interface Array<T> {
delete(item: T): boolean;
clear(): void;
}
interface Set<T> {
readonly length: number;
push(...items: T[]): void;
includes(item: T): boolean;
}
}
export { MultiMap, MultiWeakMap };