Typescript TS2322:类型';字符串| 3000';不可分配给数字

Typescript TS2322:类型';字符串| 3000';不可分配给数字,typescript,Typescript,此小行引发错误(TS2322:Type'string | 3000'不可分配给number),因为process.env.PORT的类型为string const port: number = process.env.PORT || 3000; 这还会返回一个错误,因为process.env.PORT可能是未定义的 const port: number = +process.env.PORT || 3000; const port: number = +(process.env.PORT |

此小行引发错误(
TS2322:Type'string | 3000'不可分配给number
),因为
process.env.PORT
的类型为
string

const port: number = process.env.PORT || 3000;
这还会返回一个错误,因为
process.env.PORT
可能是
未定义的

const port: number = +process.env.PORT || 3000;
const port: number = +(process.env.PORT || 3000);
有没有一种简洁的方法可以在不出现类型错误的情况下编写这篇文章


即,如果设置了
process.env.PORT
,则将
字符串
转换为
数字
,否则返回一个常量。

可以使用三元运算符

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

您可以使用
+
确保
字符串| | 3000
表达式是一个
数字