* leading edge, instead of the trailing.
* @attribution https://davidwalsh.name/javascript-debounce-function
*/
-export function debounce(func: Function, waitMs: number, immediate: boolean): Function {
+export function debounce<T extends (...args: any[]) => any>(func: T, waitMs: number, immediate: boolean): T {
let timeout: number|null = null;
return function debouncedWrapper(this: any, ...args: any[]) {
const context: any = this;
}
timeout = window.setTimeout(later, waitMs);
if (callNow) func.apply(context, args);
- };
+ } as T;
}
function isDetailsElement(element: HTMLElement): element is HTMLDetailsElement {
h1 ^= Math.imul(h2 ^ (h2 >>> 13), 3266489909);
h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507);
h2 ^= Math.imul(h1 ^ (h1 >>> 13), 3266489909);
- return (4294967296 * (2097151 & h2) + (h1 >>> 0)) as string;
+ return String((4294967296 * (2097151 & h2) + (h1 >>> 0)));
}
\ No newline at end of file