export function debounce void>(cb: T, delay = 1000) { let timeout: ReturnType; return (...args: Parameters) => { clearTimeout(timeout); timeout = setTimeout(() => { cb(...args); }, delay); }; }