Próbuję użyć isNaN
funkcji globalnej wewnątrz funkcji strzałki w module Node.js, ale pojawia się ten błąd:
[eslint] Unexpected use of 'isNaN'. (no-restricted-globals)
To jest mój kod:
const isNumber = value => !isNaN(parseFloat(value));
module.exports = {
isNumber,
};
Masz jakiś pomysł, co robię źle?
PS: Używam przewodnika stylistycznego AirBnB.
javascript
eslint
Elias Garcia
źródło
źródło
isNaN
iNumber.isNaN
to nie są te same funkcje. Na przykładisNaN('1a') true Number.isNaN('1a') false
Number('1.2.3')
w powyższym przykładzie.typeof
sprawdzić.Number.isNaN(+'1.2.3')
co jest tylko dodatkiem,+
jeśli używaszNumber.isNaN
FYI, to nie zadziała w IE. Sprawdź tutaj zgodność przeglądarek.
źródło
@Andy Gaskell
isNumber('1.2.3')
powróćtrue
, możesz edytować swoją odpowiedź i użyćNumber()
zamiastparseFloat()
źródło
W moim przypadku chciałem traktować 5 (liczbę całkowitą), 5,4 (dziesiętną), „5”, „5,4” jako liczby, ale na przykład nic więcej.
Jeśli masz podobne wymagania, poniższe mogą działać lepiej:
Aby uwzględnić liczby ujemne:
Spowoduje to również usunięcie problemu z globalnym używaniem isNaN. Jeśli przekonwertujesz funkcję isNum na normalną funkcję ES5, będzie ona działać również w przeglądarce IE.
źródło
Dla mnie to działało dobrze i nie miałem żadnego problemu z ESlint
window.isNaN()
źródło
Number.isNaN('abc')
jestfalse
. IisNaN('abc')
jesttrue
window.isNan()
jest sprzeczne z inną konfiguracją AirBnb (reguła to eslint.org/docs/rules/no-restricted-properties )no-restricted-properties
powodu tego problemu