如何在TypeScript中扩充process.env?

时间:2017-10-30 05:45:13

标签: node.js typescript typescript-typings

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某处找不到,但找不到具体的方法来实现这一点。

2 个答案:

答案 0 :(得分:4)

ProcessEnv必须在namespace NodeJS内部,并且不需要声明[key: string]: string | undefined;,它是从初始ProccessEnv继承的。

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

答案 1 :(得分:0)

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

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