在打字稿中,如何检查一个string是否是数字

在打字稿中,这显示一个错误,说isNaN只接受数字值

isNaN('9BX46B6A') 

这将返回false,因为parseFloat('9BX46B6A')计算结果为9

 isNaN(parseFloat('9BX46B6A')) 

我仍然可以运行在Visual Studio中显示的错误,但是我想以正确的方式执行。

目前,我已经写了这个修改后的function –

 static isNaNModified = (inputStr: string) => { var numericRepr = parseFloat(inputStr); return isNaN(numericRepr) || numericRepr.toString().length != inputStr.length; } 

将string转换为数字的方法是使用Number而不是parseFloat

 Number('1234') // 1234 Number('9BX9') // NaN 

如果你喜欢简写,你也可以使用一元加运算符:

 +'1234' // 1234 +'9BX9' // NaN 

我通过使用rxjs库中的isNumeric运算符来解决它(导入rxjs / util / isNumeric

一个string是否可以被parsing为一个数字是一个运行时问题。 Typescript不支持这个用法,因为它关注于编译时(而不是运行时)的安全性