如何解析字符串| typescript 中的数字?

wvyml7n5  于 2022-11-26  发布在  TypeScript
关注(0)|答案(3)|浏览(161)

我需要给string | number类型加上40,然后返回一个string | number。在Typescript中怎么可能呢?
我想把它解析成数字,然后增加它并返回它。但是我怎么能解析一个不确定是字符串但可以是数字的变量呢?:)
我试过了:
解析整数(x)-44
但提出了一个

Argument of type 'string | number' is not assignable to parameter of type 'string'.
  Type 'number' is not assignable to type 'string'.ts(2345)
ikfrs5lh

ikfrs5lh1#

使用Number而不是parseInt,类似于

Number(x)
hpxqektj

hpxqektj2#

要添加另一个选项,只需使用template string

parseInt(`${x}`)
von4xj4u

von4xj4u3#

通过检查类型:

if (typeof x === "string") {
    x = Number(x); // Or `parseInt` or whatever
}
const result = x - 44;

if之后,TypeScript将从流分析中得知x已从string | number缩小到number
Playground示例
对于解析,请参阅我对各种选项的回答。parseInt在第一个非数字字符处停止,并返回它在该点处的任何数字(而不是返回NaN),这可能是也可能不是您想要的行为。

相关问题