在以下条件语句中的(process.env.PORT-100)上获得编译时错误。
const port = process.env.PORT ? (process.env.PORT - 100) : 3000;
错误说:
算术运算的左侧必须为'any','number','bigint'或枚举类型。
答案 0 :(得分:3)
接口ProcessEnv的定义如下:
interface ProcessEnv {
[key: string]: string | undefined;
}
这意味着您需要使用parseInt
解析此字符串以进行干净的编译
答案 1 :(得分:0)
我们需要将 process.env.PORT 字符串转换为数字。正确的代码语句为:
const port = process.env.PORT ? (+process.env.PORT - 100) : 3000;
我不使用parseInt,因为 parseInt(null)返回NaN,但+ null返回0
答案 2 :(得分:0)
let foo = (condition) ? true : false;
const port = process.env.PORT ? (process.env.PORT - 100) : 3000;
请明确。如果您的$PORT
是"80"
,您想让const port
成为-20
吗?
您经常看到人们这样做:
const port = process.env.PORT | 3000;
或者:
const port = parseInt(process.env.PORT) | 3000;