13 lines
337 B
TypeScript
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);
|
|
};
|
|
}
|