[英]how to use union types with parseInt?
我有一个作为字符串输入的值,比如“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 需要一个字符串。
我怎样才能解决这个问题,或者只是停止那个警告?
您可以使用类型保护来减少类型:
let num = event.value;
if (typeof num === 'string'){
num = parseFloat(num) || num;
}
event.value = num;
在这个例子中,在类型保护内部, num
的类型只是string
。 外面它仍然是string | number
string | number
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.