function debounce) => ReturnType>(callback: F, waitFor: number): (...args: Parameters) => void { let timeout: ReturnType; return (...args: Parameters) => { clearTimeout(timeout); timeout = setTimeout(() => callback(...args), waitFor); }; } export { debounce, };