ldc-boutique-cnc-sable/resources/ts/modules/debounce.ts
2026-10-27 09:58:12 +01:00

13 lines
337 B
TypeScript

type SetTimeoutReturn = ReturnType<typeof setTimeout>
export function defineDebounce<Args>(
fn: (...args: Args[]) => void,
delay: number = 600
): (...args: Args[]) => void {
let timeoutId: SetTimeoutReturn;
return (...args: Args[]) => {
clearTimeout(timeoutId);
timeoutId = setTimeout(() => fn(...args), delay);
};
}