Skip to content

Instantly share code, notes, and snippets.

@ar5had
Forked from ca0v/debounce.ts
Created October 10, 2022 13:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ar5had/63d156469b08d559dacb460bdadeb1e7 to your computer and use it in GitHub Desktop.
Save ar5had/63d156469b08d559dacb460bdadeb1e7 to your computer and use it in GitHub Desktop.
Typescript Debounce
// ts 3.6x
function debounce<T extends Function>(cb: T, wait = 20) {
let h = 0;
let callable = (...args: any) => {
clearTimeout(h);
h = setTimeout(() => cb(...args), wait);
};
return <T>(<any>callable);
}
// usage
let f = debounce((a: string, b: number, c?: number) => console.log(a.length + b + c || 0));
f("hi", 1, 1);
f("world", 1);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment