/** * 防抖函数 * @param fn 函数 * @param delay 延迟时间 * @returns */ const debounce = any>(fn: T, delay: number) => { let timer: ReturnType | null = null; return function (this: any, ...args: Parameters) { if (timer !== null) clearTimeout(timer); timer = setTimeout(() => { fn.apply(this, args); timer = null; }, delay); }; }; export { debounce };