我有一个以字符串形式出现的值,例如" 1.5" 如果它是一个数字,我希望它被记录为数字。 这段代码将执行j
// parse out the value as a number if it is one
let val = parseFloat(event.value) || event.value;
event.value = val;
我有一个接口
interface IEvent {
value: string | number;
...
}
但这会产生错误
'类型字符串|数字的参数未分配参数字符串'
因为parseInt需要一个字符串。
我如何解决这个问题,或者只是停止警告?
答案 0 :(得分:1)
您可以使用类型防护来减少类型:
let num = event.value;
if (typeof num === 'string'){
num = parseFloat(num) || num;
}
event.value = num;
在此示例中,在类型保护的内部,num
的类型只是string
。外面它仍然是string | number
。