variable objetos number long listas length array typescript

objetos - typescript int variable



En Typescript, cómo verificar si una cadena es numérica (4)

Construí una función a partir de la explicación de C Snover .

function isNumber(value: string | number): boolean { return !isNaN(Number(value.toString())); }

En Typescript, esto muestra un error que dice que isNaN solo acepta valores numéricos

isNaN(''9BX46B6A'')

y esto devuelve falso porque parseFloat(''9BX46B6A'') evalúa como 9

isNaN(parseFloat(''9BX46B6A''))

Todavía puedo ejecutar con el error apareciendo en Visual Studio, pero me gustaría hacerlo de la manera correcta.

Actualmente, he escrito esta función modificada -

static isNaNModified = (inputStr: string) => { var numericRepr = parseFloat(inputStr); return isNaN(numericRepr) || numericRepr.toString().length != inputStr.length; }


La forma de convertir una cadena en un número es con Number , no con parseFloat .

Number(''1234'') // 1234 Number(''9BX9'') // NaN

También puede usar el operador unario plus si le gusta la taquigrafía:

+''1234'' // 1234 +''9BX9'' // NaN

Tenga cuidado al verificar contra NaN (el operador === y !== no funcionan como se esperaba con NaN ). Utilizar:

isNaN(maybeNumber) // returns true if NaN, otherwise false


Lo resuelvo usando el operador isNumeric de la biblioteca rxjs (importando rxjs / util / isNumeric


Si una cadena se puede analizar como un número es una preocupación de tiempo de ejecución. Typescript no admite este uso cas, ya que se centra en la seguridad en tiempo de compilación (no en tiempo de ejecución)