写一个ts防抖

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

当然可以!以下是一个使用 TypeScript 实现的简单防抖函数示例:

复制代码
function debounce<T extends (...args: any[]) => void>(func: T, wait: number): (...args: Parameters<T>) => void {
    let timeout: ReturnType<typeof setTimeout> | null = null;

    return function(...args: Parameters<T>) {
        if (timeout !== null) {
            clearTimeout(timeout);
        }

        timeout = setTimeout(() => func.apply(this, args), wait);
    };
}

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

window.addEventListener('resize', handleResize);

这个防抖函数接受一个回调函数 func 和一个等待时间 wait,并在每次触发时清除之前的定时器,然后在指定的时间后执行回调函数。这样可以防止频繁调用回调函数,从而提高性能。

如需继续排查或进一步讨论,请点击下方【🔍追问按钮】提交补充信息。

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