debounce.ts
typescript/utils/debounce.ts
TypeScript
Type-safe debounce utility that delays function execution until after a specified wait period.
debounce.ts
/**
* @description Type-safe debounce utility that delays function execution until after a specified wait period.
* @tags utility, performance, async, throttle
*/
export function debounce<T extends (...args: Parameters<T>) => ReturnType<T>>(
fn: T,
wait: number
): (...args: Parameters<T>) => void {
let timer: ReturnType<typeof setTimeout>;
return function (...args: Parameters<T>): void {
clearTimeout(timer);
timer = setTimeout(() => fn(...args), wait);
};
}