繁体   English   中英

如何在 parseInt 中使用联合类型?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM