Estoy tratando de usar la isNaN
función global dentro de una función de flecha en un módulo Node.js pero recibo este error:
[eslint] Unexpected use of 'isNaN'. (no-restricted-globals)
Este es mi código:
const isNumber = value => !isNaN(parseFloat(value));
module.exports = {
isNumber,
};
¿Alguna idea de lo que estoy haciendo mal?
PD: estoy usando la guía de estilo AirBnB.
javascript
eslint
Elias Garcia
fuente
fuente
isNaN
yNumber.isNaN
no son las mismas funciones. Por ejemploisNaN('1a') true Number.isNaN('1a') false
Number('1.2.3')
en el ejemplo anterior.typeof
comprobación.Number.isNaN(+'1.2.3')
que es solo un extra+
si lo usasNumber.isNaN
FYI, esto no funcionará para IE. Verifique aquí la compatibilidad del navegador.
fuente
@Andy Gaskell
isNumber('1.2.3')
regresatrue
, es posible que desee editar su respuesta y usarlaNumber()
en lugar deparseFloat()
fuente
En mi caso, quería tratar 5 (entero), 5.4 (decimal), '5', '5.4' como números, pero nada más, por ejemplo.
Si tiene los requisitos similares, a continuación puede funcionar mejor:
Para incluir números negativos:
Esto eliminará su problema de uso global de isNaN también. Si convierte la función isNum en una función ES5 normal, también funcionará en el navegador IE.
fuente
Para mí, esto funcionó bien y no tuve ningún problema con ESlint
window.isNaN()
fuente
Number.isNaN('abc')
esfalse
. YisNaN('abc')
estrue
window.isNan()
está en contra de la configuración de otros AirBnb (la regla es eslint.org/docs/rules/no-restricted-properties )no-restricted-properties
debido a este problema