Closed1

zod で process.env を型安全に扱いたい

nbstshnbstsh

zod で process.env 用の object schema を作成し、parse すればOK。
型に関しては、 ProcessEnvprocess.env 用 schema の型を extends させてあげれば型補完が効く。

import { z } from 'zod';

const envVariables = z.object({
  APP_ENV: z.enum(['dev', 'staging', 'prod']),
});

envVariables.parse(process.env);

declare global {
  namespace NodeJS {
    interface ProcessEnv extends z.infer<typeof envVariables> {}
  }
}

こちらの tweet 参照↓

https://twitter.com/mattpocockuk/status/1615110808219918352

このスクラップは2023/01/22にクローズされました