export default ( callback: (...args: T) => void, delay: number ) => { let isWaiting = false; return (...args: T) => { if (isWaiting) { return; } callback(...args); isWaiting = true; setTimeout(() => { isWaiting = false; }, delay); }; };