export function daAttrSelector(name: string, rest = '') { return `[data-auto-id="${name}"] ${rest}`; } export function isString(value: any): value is string { return typeof value === 'string'; } export function isNumber(value: unknown): value is number { return !isNaN(parseFloat(value as any)) && !Number.isNaN(Number(value)); } export function isObject(value: unknown): value is T { return Object.prototype.toString.call(value) === '[object Object]'; } export function isNil(value: unknown): boolean { return typeof value === 'undefined' || value === null; } export function toNumber(value: any): number; export function toNumber(value: any, fallback: D): number | D; export function toNumber(value: any, fallbackValue = 0) { return isNumber(value) ? Number(value) : fallbackValue; }