帮我写一个ts的防抖函数
帮我写一个ts的防抖函数
帮我写一个ts的防抖函数

用户986184975
2025年03月04日
|
浏览 107
前端
TypeScript
复制
复制代码
function debounce<F extends (...args: any[]) => void>(func: F, wait: number): F {
let timeout: ReturnType<typeof setTimeout> | null;
return function(this: ThisParameterType<F>, ...args: Parameters<F>) {
const context = this;
if (timeout !== null) clearTimeout(timeout);
timeout = setTimeout(() => func.apply(context, args), wait);
} as F;
}
关键技术说明:
- 使用闭包保存
timeout变量,以便在每次调用时清除之前的定时器。 - 通过
setTimeout设置一个新的延迟执行时间。 - 确保函数上下文和参数正确传递给原始函数。
我要提问
复制内容
分享给好友
AI编程问答网 免责声明:
以上内容除特别注明外均来源于网友提问,AI编程问答网回答,权益归原著者所有;
上一篇:写一个 python 的快速排序
下一篇:你好
