UNPKG

apply-hooks

Version:

A high-quality & reliable JavaScript Hooks library.

83 lines (82 loc) 1.63 kB
/** * add 添加元素 * has 判单元素是否存在 * delete 删除元素 * clear 方法 进行清空 * size 方法 * values 获取集合中所有的值 * keys 获取集合中的key值 * entries 迭代 * forEach 迭代 * for of * * 并集 * 交集 * 差集 * 子集 */ interface IAdd<T> { (keyName: string, value: T): boolean; } interface ISet<T> { (keyName: string, value: T): boolean; } interface IHas { (keyName: string): boolean; } interface IDelete<T> { (keyName: string): boolean | T; } interface IClear { (): void; } interface ISize { (): number; } interface IValues<T> { (): T[]; } interface IKeys { (): string[]; } interface IForeach { (cb: (...args: any[]) => any): void; } interface IGet<T> { (keyName: string): boolean | T; } declare class OnlyMap<T> { obj: Record<string, T>; length: number; constructor(); [Symbol.iterator]: () => { next(): { value: T; done: boolean; }; }; add(keyName: string, value: T): boolean; get(keyName: string): boolean | T; set(keyName: string, value: T): boolean; has(keyName: string): boolean; delete(keyName: string): boolean | T; clear(): void; size(): number; values(): T[]; keys(): string[]; forEach(cb: (...args: any[]) => any): void; } declare const useOnlyMap: <T>() => { add: IAdd<T>; set: ISet<T>; has: IHas; get: IGet<T>; delete: IDelete<T>; clear: IClear; size: ISize; values: IValues<T>; keys: IKeys; forEach: IForeach; onlyMap: OnlyMap<T>; }; export default useOnlyMap;