export const isNumeric = (num: string | number) => (typeof num === 'number' || (typeof num === 'string' && num.trim() !== '')) && !isNaN(num as number); export const pad = (n: string | number) => { if (n === null || n === undefined) { return ''; } return ('0' + n).slice(-2); }; export function debounce unknown>( func: F, timeout = 100 ): (this: ThisParameterType, ...args: Parameters) => void { let timer: ReturnType; return function (this: ThisParameterType, ...args: Parameters) { clearTimeout(timer); timer = setTimeout(() => { func.apply(this, args); }, timeout); }; }