75 votes

Comment vérifier si une valeur est NaN dans Typescript ?

En TypeScript, comment pouvons-nous vérifier si une valeur est NaN ?

Ce qui suit ne fonctionne pas :

someObject.someValue == NaN
someObject.someValue === NaN

138voto

zeh Points 2192

Identique à JavaScript, isNaN .

if (isNaN(someObject.someValue)) ...

Ou le plus moderne Number.isNaN

if (Number.isNaN(someObject.someValue)) ...

4 votes

Tout ce qui n'est pas NaN renvoie à false . Cordes, null , undefined les booléens - ils retourneront tous false de Number.isNaN() ou simple isNaN() . La fonction ne teste pas si quelque chose "n'est pas un nombre", mais plutôt s'il "est NaN", qui est une valeur numérique invalide spécifique, en pratique. Pour tester si quelque chose n'est pas un nombre, faites typeof something !== "number" || isNaN(something) .

3 votes

Au cas où quelqu'un d'autre tomberait dessus, window.isNaN() transformera une valeur en un nombre et vérifiera ensuite s'il s'agit de NaN . Donc undefined y "hello" retournera true alors que undefined y "" retourner false . C'est pourquoi Number.isNaN a été ajouté, car il vérifie explicitement la présence de NaN sans la coercition initiale.

0 votes

Cela vaut la peine de garder à l'esprit : "123.123" retournera false, mais "123,123" retournera vrai.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X