J'essaie d'utiliser la isNaN
fonction globale dans une fonction de flèche dans un module Node.js mais j'obtiens cette erreur:
[eslint] Unexpected use of 'isNaN'. (no-restricted-globals)
Voici mon code:
const isNumber = value => !isNaN(parseFloat(value));
module.exports = {
isNumber,
};
Une idée de ce que je fais mal?
PS: J'utilise le guide de style AirBnB.
javascript
eslint
Elias Garcia
la source
la source
isNaN
etNumber.isNaN
ne sont pas les mêmes fonctions. Par exempleisNaN('1a') true Number.isNaN('1a') false
Number('1.2.3')
dans l'exemple ci-dessus.typeof
contrôle.Number.isNaN(+'1.2.3')
qui est juste un extra+
si vous utilisezNumber.isNaN
FYI, cela ne fonctionnera pas pour IE. Vérifiez ici la compatibilité du navigateur.
la source
@Andy Gaskell
isNumber('1.2.3')
revienttrue
, vous voudrez peut-être modifier votre réponse et utiliserNumber()
à la place deparseFloat()
la source
Dans mon cas, je voulais traiter 5 (entier), 5,4 (décimal), «5», «5,4» comme des nombres mais rien d'autre par exemple.
Si vous avez des exigences similaires, ci-dessous peut mieux fonctionner:
Pour inclure des nombres négatifs:
Cela supprimera également votre problème d'utilisation globale d'isNaN. Si vous convertissez la fonction isNum en fonction ES5 normale, elle fonctionnera également sur le navigateur IE.
la source
Pour moi, cela a bien fonctionné et n'a eu aucun problème avec ESlint
window.isNaN()
la source
Number.isNaN('abc')
estfalse
. AndisNaN('abc')
istrue
window.isNan()
est contre la configuration d'autres AirBnb (la règle est eslint.org/docs/rules/no-restricted-properties )no-restricted-properties
cause de ce problème