export default function debounce( func: (...args: Params) => any, timeout: number, ): (...args: Params) => void { let timer: ReturnType; return (...args: Params) => { clearTimeout(timer) timer = setTimeout(() => { func(...args) }, timeout) } }