ECMAScript Map
like type definition (plus Async).
It has same API Interface with Map - JavaScript | MDN, with additional Async support.
import { MapLike } from 'async-map-like'
const mapLike: MapLike<string, number> = new Map<string, number>
That's it, enjoy the Duck Typing!
/**
* ES6 Map like Async API
*/
export interface AsyncMapLike<K = any, V = any> {
size : Promise<number>
get (key: K) : Promise<V | undefined>
set (key: K, value: V) : Promise<void>
has (key: K) : Promise<boolean>
delete (key: K) : Promise<void>
clear () : Promise<void>
entries () : AsyncIterableIterator<[K, V]>
keys () : AsyncIterableIterator<K>
values () : AsyncIterableIterator<V>
[Symbol.asyncIterator]() : AsyncIterableIterator<[K, V]>
forEach (
callbackfn: (
value : V,
key : K,
map : AsyncMapLike<K, V>,
) => void,
thisArg?: AsyncMapLike<K, V>,
): Promise<void>
}
- Remove sync interface:
[Symbol.toStringTag]()
and[Symbol.iterator]()
- Add async interface:
[Symbol.asyncIterator]()
- Create
MapLike
interface for ES6 Map - Create
AsyncMapLike
for ES6 Map like Async interface
Huan LI (李卓桓), Microsoft AI MVP, [email protected]
- Docs released under Creative Commons
- Code released under the Apache-2.0 License
- Code & Docs © 2018 Huan LI <[email protected]>