写一个ts防抖

写一个ts防抖
用户986184975
2025年03月04日
|
浏览 118

好的,以下是一个使用 TypeScript 实现的防抖函数示例:

复制代码
function debounce(func: (...args: any[]) => void, wait: number): (...args: any[]) => void {
    let timeout: ReturnType<typeof setTimeout> | null;
    return function(...args: any[]) {
        const later = () => {
            clearTimeout(timeout!);
            func(...args);
        };
        if (timeout) {
            clearTimeout(timeout);
        }
        timeout = setTimeout(later, wait);
    };
}

// 使用示例
const handleResize = debounce(() => {
    console.log('Window resized');
}, 300);

window.addEventListener('resize', handleResize);

关键技术说明:

  1. 防抖函数:通过 setTimeoutclearTimeout 实现防抖效果。
  2. 闭包:利用闭包保存 timeout 变量,以便在每次调用时清除之前的定时器。
  3. 事件监听:将防抖后的函数绑定到需要监听的事件上,如窗口大小调整事件。

补充信息:

如果您有更多问题或需要进一步的定制化需求,请点击下方【🔍追问按钮】提交补充信息。

我要提问
复制内容
分享给好友
AI编程问答网 免责声明:
以上内容除特别注明外均来源于网友提问,AI编程问答网回答,权益归原著者所有;
 
上一篇:写一个ts防抖
下一篇:写一个ts防抖