TypeScript isNaN只接受一个数字
TypeScript isNaN只接受一个数字
我使用的是WebStorm 2016.2.2、TypeScript 2.1和Node.js。
由于某种原因,isNaN
被声明为只接受数字的函数:
declare function isNaN(number: number): boolean;
我尝试将其更改为任意类型,但似乎不会影响TSC。我仍然得到相同的错误:
类型为'string'的参数不能赋给类型为'number'的参数
我的代码(简化版):
isNaN("10");
我该如何解决或规避这个问题?
编辑:
请注意,根据规范,isNaN的参数可以是任意类型:Number.isNaN()
另外:我的代码经过简化。实际上,我接收一个可能是字符串或数字的参数,如果是字符串,它可能是一个我想要转换为数字的字符串数值("10"),或者是一个简单的字符串("Hello world")。
我不想在问题中包含整个代码,以免让问题变得冗长,但由于引起了混淆,这是我的真实代码:
if (typeof expectedValue === "string" && !isNaN(expectedValue)) { expectedValue = +expectedValue; } if (typeof actualValue === "string" && !isNaN(ctualValue)) { actualValue = +actualValue; } switch (this.operator) { case Operator.equal: return actualValue == expectedValue; case Operator.notEqual: return actualValue === undefined || actualValue != expectedValue; case Operator.greaterThan: return actualValue > expectedValue; case Operator.littleThan: return actualValue < expectedValue; case Operator.greaterOrEqual: return actualValue >= expectedValue; case Operator.littleOrEqual: return actualValue <= expectedValue; }