react-hooks-and-com
Version:
一个现代化的 React 自定义 Hooks 库,提供 20+ 个实用的自定义 Hooks。使用 TypeScript 和 Tailwind CSS 构建,完全类型安全。
64 lines • 1.89 kB
TypeScript
export interface UseQueueOptions<T> {
/** 初始队列元素 */
initialItems?: T[];
/** 队列最大长度 */
maxSize?: number;
/** 队列满时的处理策略 */
overflowStrategy?: 'drop' | 'error' | 'shift';
}
export interface UseQueueReturn<T> {
/** 当前队列 */
queue: T[];
/** 入队 - 添加元素到队列末尾 */
enqueue: (item: T) => void;
/** 批量入队 - 添加多个元素到队列末尾 */
enqueueMany: (items: T[]) => void;
/** 出队 - 移除并返回队列的第一个元素 */
dequeue: () => T | undefined;
/** 查看队列的第一个元素(不移除) */
peek: () => T | undefined;
/** 查看队列的最后一个元素 */
peekLast: () => T | undefined;
/** 清空队列 */
clear: () => void;
/** 检查队列是否为空 */
isEmpty: () => boolean;
/** 获取队列长度 */
size: () => number;
/** 检查队列是否已满 */
isFull: () => boolean;
/** 队列的字符串表示 */
queueString: string;
/** 队列是否已满 */
full: boolean;
/** 队列长度 */
length: number;
}
/**
* 队列 Hook
* 提供队列数据结构的操作功能
*
* @template T - 队列元素的类型
* @param options 配置选项
* @returns 返回队列操作方法和状态
*
* @example
* ```tsx
* const { queue, enqueue, dequeue, size, isEmpty } = useQueue<number>({
* initialItems: [1, 2, 3],
* maxSize: 10,
* overflowStrategy: 'drop'
* });
*
* return (
* <div>
* <button onClick={() => enqueue(Math.random())}>入队</button>
* <button onClick={() => dequeue()}>出队</button>
* <p>队列长度: {size()}</p>
* <p>队列内容: {queue.join(', ')}</p>
* </div>
* );
* ```
*/
export declare const useQueue: <T>(options?: UseQueueOptions<T>) => UseQueueReturn<T>;
//# sourceMappingURL=useQueue.d.ts.map