export function debounce unknown>(fn: T, ms: number): T { let timeoutId: ReturnType; return ((...args: unknown[]) => { clearTimeout(timeoutId); timeoutId = setTimeout(() => fn(...args), ms); }) as T; }