export default function debounce(delay: number, handler: (event: T) => void): (event: T) => void { let tid: ReturnType | null = null; return (e: T) => { if (tid) clearTimeout(tid); tid = setTimeout( () => (handler(e), tid = null), delay ); }; }