Ich versuche, die isNaN
globale Funktion innerhalb einer Pfeilfunktion in einem Node.js-Modul zu verwenden, erhalte jedoch den folgenden Fehler:
[eslint] Unexpected use of 'isNaN'. (no-restricted-globals)
Das ist mein Code:
const isNumber = value => !isNaN(parseFloat(value));
module.exports = {
isNumber,
};
Irgendeine Idee, was ich falsch mache?
PS: Ich verwende den AirBnB-Styleguide.
javascript
eslint
Elias Garcia
quelle
quelle
isNaN
undNumber.isNaN
sind nicht die gleichen Funktionen. Zum BeispielisNaN('1a') true Number.isNaN('1a') false
Number('1.2.3')
im obigen Beispiel.typeof
Scheck machen.Number.isNaN(+'1.2.3')
was nur ein Extra ist,+
wenn Sie verwendenNumber.isNaN
Zu Ihrer Information, dies wird nicht für IE funktionieren. Überprüfen Sie hier die Browserkompatibilität.
quelle
@Andy Gaskell
isNumber('1.2.3')
zurücktrue
, vielleicht möchten Sie Ihre Antwort bearbeiten undNumber()
anstelle von verwendenparseFloat()
quelle
In meinem Fall wollte ich 5 (Ganzzahl), 5,4 (Dezimal), '5', '5,4' als Zahlen behandeln, aber zum Beispiel nichts anderes.
Wenn Sie ähnliche Anforderungen haben, funktioniert das Folgende möglicherweise besser:
Um negative Zahlen einzuschließen:
Dadurch wird auch Ihr Problem der globalen Nutzung von isNaN behoben. Wenn Sie die isNum-Funktion in eine normale ES5-Funktion konvertieren, funktioniert sie auch im IE-Browser.
quelle
Für mich hat das gut funktioniert und ich hatte kein Problem mit ESlint
window.isNaN()
quelle
Number.isNaN('abc')
istfalse
. UndisNaN('abc')
isttrue
window.isNan()
gegen die Konfiguration anderer AirBnb verstößt (die Regel lautet eslint.org/docs/rules/no-restricted-properties )no-restricted-properties
wegen dieses Problems deaktivieren musste