我使用 WebStorm 2016.2.2,TypeScript 2.1,Node.js。
由于某种原因,isNaN
被声明为只接受一个数字的函数:
declare function isNaN(number: number): boolean;
我试着改成任何一种,但看起来对 TSC 没有影响。我仍然得到相同的错误:
类型为“ string”的参数不可赋值给类型为 号码
我的代码(简体) :
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;
}