Estoy tratando de usar la isNaNfunció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

isNaNyNumber.isNaNno son las mismas funciones. Por ejemploisNaN('1a') true Number.isNaN('1a') falseNumber('1.2.3')en el ejemplo anterior.typeofcomprobación.Number.isNaN(+'1.2.3')que es solo un extra+si lo usasNumber.isNaNFYI, 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')estruewindow.isNan()está en contra de la configuración de otros AirBnb (la regla es eslint.org/docs/rules/no-restricted-properties )no-restricted-propertiesdebido a este problema