TypeScript isNan only accepts a number
I advise you to implement your code differently.
The reasons:
- It might be short, but it's not easy to understand what's going on
- Using
isNaN
isn't the best option here:isNaN("")
returnsfalse
as well
You better try to convert the value into a number and check if that's NaN
or not (as @smnbbrv wrote):
if (typeof expectedValue === "string" && !Number.isNaN(Number(expectedValue))) {
expectedValue = Number(expectedValue);
}
Edit
You can pass your value as any
:
isNaN(ctualValue as any)
To bypass the compiler check.
You should not solve it because this is how TypeScript works.
Just cast the input to number first
Number("10") // 10
Number("abc") // NaN
and then check the result with the isNan function:
isNaN(Number("abc"))