apply-hooks
Version:
A high-quality & reliable JavaScript Hooks library.
83 lines (82 loc) • 1.63 kB
TypeScript
/**
* 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;