😎

process.envに型情報を追加する

2023/01/17に公開約500字

概要

環境変数で使用するprocess.envですが、元の型情報では追加した環境変数の補完ができません。
コーディングの最中に何度も確認するのも無駄だと思います。

そこで、追加した環境変数を補完できるようにしていきましょう。

通常の型

ちなみに型拡張をしない場合はインデックスシグネチャを使用しているだけです。
もちろん推論は効きません。

process.d.ts
interface ProcessEnv extends Dict<string> {
    TZ?: string;
}
globals.d.ts
interface Dict<T> {
    [key: string]: T | undefined;
}

結論

プロジェクトルートにglobal.d.tsを作成し、以下のコードを追記します。

global.d.ts
declare namespace NodeJS {
  interface ProcessEnv {
    readonly NODE_ENV: 'development' | 'production'
    readonly SOME_API_KEY: string
  }
}

具体的な型情報を上書きすることで推論が可能になります。

Discussion

ログインするとコメントできます