如何在 TypeScript 中增加 process.env?

How to augment process.env in TypeScript?

process.env 属于 ProcessEnv 类型,定义如下:

export interface ProcessEnv {
    [key: string]: string | undefined;
}

我想扩充此 TypeScript 接口,以便它包含特定于我的应用程序的键,因此结果类似于:

export interface ProcessEnv {
    MY_VARIABLE_1: string;
    MY_OTHER_VARIABLE: string;
    [key: string]: string | undefined;
}

我找不到实现它的方法,我猜它会是 declare moduledeclare namespace 某个地方,但找不到实现它的具体方法。

ProcessEnv必须在namespace NodeJS里面,不需要声明[key: string]: string | undefined;,它继承了最初的ProccessEnv

declare namespace NodeJS {
  export interface ProcessEnv {
    MY_VARIABLE_1: string;
    MY_OTHER_VARIABLE: string;
  }
}

如果要从 process.env 声明中删除 [key: string]: string | undefined 索引器,从而将 env 的使用限制为显式声明的名称,您可以将进程声明为变量:

declare var process : {
  env: {
    NODE_ENV: string
  }
}