打字稿-(process.env.PORT-100)编译时错误

时间:2020-04-01 06:50:39

标签: typescript

在以下条件语句中的(process.env.PORT-100)上获得编译时错误。

const port = process.env.PORT ? (process.env.PORT - 100) : 3000;

错误说:

算术运算的左侧必须为'any','number','bigint'或枚举类型。

3 个答案:

答案 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;