1. ホーム
  2. node.js

[解決済み] TypeScriptでprocess.envを使用する

2022-05-05 21:59:43

質問

TypeScriptでノードの環境変数を読み込むには?

もし process.env.NODE_ENV 私はこのエラーを持っている。

Property 'NODE_ENV' does not exist on type 'ProcessEnv'

をインストールしました。 @types/node が、役に立ちませんでした。

解決方法は?

Nodeのプロセスでどのような(もしあれば)環境変数が利用可能であるかは保証されていません。 NODE_ENV 変数は、Node自体に組み込まれたものではなく、Expressによって普及した慣習に過ぎません。そのため、この変数を型定義に含めることはあまり意味のないことです。その代わりに を定義しています。 process.env このように :

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

ということは process.env は、文字列を返すために文字列でインデックスを作成することができます(あるいは undefined 変数が設定されていない場合)。エラーを修正するには、index構文を使用する必要があります。

let env = process.env["NODE_ENV"];

また、コメントでjcalzさんが指摘しているように、TypeScript 2.2以降であれば、上で定義したようなインデックス可能な型にドット構文でアクセスすることも可能です。