From d79b5a3d60bba39a285f4eb878839dee2b4027da Mon Sep 17 00:00:00 2001 From: Jukka Kurkela Date: Sun, 21 Mar 2021 17:50:28 +0200 Subject: [PATCH] Add typings for throttled and debounce (#8689) * Add typings for throttled and debounce * Review feedback * args for fn too * one more --- types/helpers/helpers.extras.d.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/types/helpers/helpers.extras.d.ts b/types/helpers/helpers.extras.d.ts index 5979b86b4..d3ddc784e 100644 --- a/types/helpers/helpers.extras.d.ts +++ b/types/helpers/helpers.extras.d.ts @@ -4,3 +4,20 @@ export function fontString(pixelSize: number, fontStyle: string, fontFamily: str * Request animation polyfill */ export function requestAnimFrame(cb: () => void): void; + +/** + * Throttles calling `fn` once per animation frame + * Latest argments are used on the actual call + * @param {function} fn + * @param {*} thisArg + * @param {function} [updateFn] + */ +export function throttled(fn: (...args: any[]) => void, thisArg: any, updateFn?: (...args: any[]) => any[]): (...args: any[]) => void; + +/** + * Debounces calling `fn` for `delay` ms + * @param {function} fn - Function to call. No arguments are passed. + * @param {number} delay - Delay in ms. 0 = immediate invocation. + * @returns {function} + */ +export function debounce(fn: () => void, delay: number): () => number; -- 2.47.3