Estou tentando usar a isNaN
função global dentro de uma função de seta em um módulo Node.js., mas estou recebendo este erro:
[eslint] Unexpected use of 'isNaN'. (no-restricted-globals)
Este é o meu código:
const isNumber = value => !isNaN(parseFloat(value));
module.exports = {
isNumber,
};
Alguma idéia do que estou fazendo de errado?
PS: Estou usando o guia de estilo AirBnB.
javascript
eslint
Elias Garcia
fonte
fonte
isNaN
eNumber.isNaN
não são as mesmas funções. Por exemploisNaN('1a') true Number.isNaN('1a') false
Number('1.2.3')
no exemplo acima.typeof
verificação.Number.isNaN(+'1.2.3')
que é apenas um extra+
se você usarNumber.isNaN
Para sua informação, isso não funcionará para o IE. Verifique aqui na compatibilidade do navegador.
fonte
@ Andy Gaskell
isNumber('1.2.3')
retornartrue
, convém editar sua resposta e usá-laNumber()
no lugar deparseFloat()
fonte
No meu caso, eu queria tratar 5 (inteiro), 5,4 (decimal), '5', '5,4' como números, mas nada mais, por exemplo.
Se você tiver requisitos semelhantes, abaixo pode funcionar melhor:
Para incluir números negativos:
Isso removerá o problema de uso global de isNaN também. Se você converter a função isNum em uma função normal do ES5, ela também funcionará no navegador IE.
fonte
Para mim, isso funcionou bem e não teve nenhum problema com o ESlint
window.isNaN()
fonte
Number.isNaN('abc')
éfalse
. EisNaN('abc')
étrue
window.isNan()
é contra a configuração de outros AirBnb (a regra é eslint.org/docs/rules/no-restricted-properties )no-restricted-properties
por causa desse problema