export const debounce = function) => unknown> (callback: T, delay = 300) { let timer: NodeJS.Timeout | null = null; return function (...args: Parameters) { if(timer) { clearTimeout(timer); } timer = setTimeout(() => { callback(...args); }, delay); }; };