123456789101112 |
- export default function debounce<T extends (...args: any[]) => void>(
- func: T,
- wait: number
- ): T {
- let timeout: ReturnType<typeof setTimeout> | null = null;
- return function (this: any, ...args: Parameters<T>) {
- if (timeout !== null) {
- clearTimeout(timeout);
- }
- timeout = setTimeout(() => func.apply(this, args), wait);
- } as T;
- }
|