TS2322:输入' string | 3000'不能分配给号码

时间:2018-05-21 10:41:41

标签: typescript

此小行会引发错误(TS2322: Type 'string | 3000' is not assignable to number),因为process.env.PORT的类型为string

const port: number = process.env.PORT || 3000;

这也会返回错误,因为process.env.PORT可能是undefined

const port: number = +process.env.PORT || 3000;

在没有出现类型错误的情况下,有没有简洁的方法来编写它?

即。如果设置了process.env.PORT,则将string转换为number,否则返回常量。

1 个答案:

答案 0 :(得分:5)

您可以使用+确保string || 3000表达式为number

const port: number = +(process.env.PORT || 3000);