在打字稿中检查 NAN [重复]

Posted

技术标签:

【中文标题】在打字稿中检查 NAN [重复]【英文标题】:checking NAN in typescript [duplicate] 【发布时间】:2017-10-03 06:49:29 【问题描述】:

我想检查输入的字符串是否是打字稿中的 NAN。目前我正在这样做

if (isNaN(parseInt(input))) return "It's not a number."

如果我输入 @@@@ 或 #### 可以正常工作,但如果我输入“444@@@@”,则无法正常工作。

【问题讨论】:

这个问题与TypeScript无关,TypeScript只是javascript之上的一个打字层和一个转译器。 【参考方案1】:

parseInt 解析直到输入字符串中的第一个非数字,see MDN:

如果 parseInt 在指定的基数中遇到不是数字的字符,它会忽略它和所有后续字符并返回解析到该点的整数值。 parseInt 将数字截断为整数值。允许前导和尾随空格。

在这种情况下,parseInt("444@@@@") === 444444 不是 NaN

如果要检查整个字符串是否代表有效数字,use Number instead:

if (isNaN(Number(input))) return "It's not a number."

或者,使用一元加号运算符强制类型转换为number(相当于调用Number):

if (isNaN(+input)) return "It's not a number."

编辑:实际上,isNaN 无论如何都会进行类型转换,所以你也可以直接调用它:

if (isNaN(input)) return "It's not a number."

【讨论】:

if (isNaN(input)) 返回“这不是一个数字。”这行得通。谢谢。

以上是关于在打字稿中检查 NAN [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在打字稿中连接两个对象[重复]

如何在打字稿中使用可选参数调用类构造函数[重复]

打字稿中的剂量[索引:字符串]是啥意思[重复]

在打字稿中查找3个数组中的共同元素[重复]

从打字稿中的对象获取特定类型的所有键[重复]

字符串枚举类似于打字稿中的类型[重复]