Typer les variables d’environnement
Donner à process.env un type précis et validé.
Typer les variables d’environnement est une leçon TypeScript Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage TypeScript Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours TypeScript Academy comprend 4 leçons au total.
Le problème de process.env
Dans Node.js, process.env est typé comme Record<string, string | undefined>. Chaque variable peut être absente et toutes les valeurs sont des chaînes ; l’accès brut est donc dangereux et dépourvu de typage.
Déclarer une interface Env typée
Commencez par décrire précisément la configuration dont votre application a réellement besoin, avec les types corrects et la distinction entre les champs obligatoires et facultatifs.
interface Env {
PORT: number;
NODE_ENV: "development" | "production";
DATABASE_URL: string;
DEBUG?: boolean; // optional
}Lire les valeurs brutes
Toutes les valeurs arrivent sous forme de chaînes ou de undefined. Vous devez les lire avec prudence, car les clés peuvent tout simplement être absentes.
const rawPort = process.env.PORT; // string | undefined
const rawEnv = process.env.NODE_ENV; // string | undefinedVariables obligatoires ou facultatives
Certaines variables doivent exister pour que l’application fonctionne ; d’autres disposent de valeurs de repli pertinentes. Un utilitaire destiné aux valeurs obligatoires échoue explicitement lorsqu’une valeur manque.
function required(name: string): string {
const v = process.env[name];
if (v === undefined) throw new Error("Missing env: " + name);
return v;
}Analyser les nombres
Les variables numériques doivent être converties et validées, car parseInt peut produire NaN. Encapsulez l’analyse afin que toute entrée incorrecte soit rejetée immédiatement.
function num(name: string): number {
const n = Number(required(name));
if (Number.isNaN(n)) throw new Error(name + " is not a number");
return n;
}Analyser les booléens
Les booléens arrivent sous forme de chaînes comme "true". Normalisez-les explicitement au lieu de vous fier à la valeur de vérité d’une chaîne non vide.
function bool(name: string, def = false): boolean {
const v = process.env[name];
if (v === undefined) return def;
return v === "true" || v === "1";
}Construire la config typée
Assemblez les valeurs analysées dans un objet correspondant à l’interface Env. À partir de là, le reste de l’application utilise la config typée et n’accède plus directement à process.env.
const env: Env = {
PORT: num("PORT"),
NODE_ENV: required("NODE_ENV") as Env["NODE_ENV"],
DATABASE_URL: required("DATABASE_URL"),
DEBUG: bool("DEBUG"),
};Restreindre les unions de chaînes
Pour les variables dont les valeurs possibles appartiennent à un ensemble fixe, validez-les par rapport à cet ensemble afin qu’une valeur inattendue ne puisse pas être acceptée comme un type littéral incorrect.
function oneOf<T extends string>(name: string, allowed: readonly T[]): T {
const v = required(name) as T;
if (!allowed.includes(v)) throw new Error(name + " invalid");
return v;
}Centraliser l’accès
Exportez l’objet unique env depuis un seul module. Chaque utilisateur l’importe, ce qui lui apporte un typage complet et un emplacement unique où modifier la logique d’analyse.
export const config = env;
// elsewhere: import { config } from "./config";Enrichir ProcessEnv (facultatif)
Vous pouvez déclarer une extension de module pour NodeJS.ProcessEnv afin de typer l’accès brut, mais un objet de config analysé est plus sûr, car il valide et convertit également les valeurs.
// declare global { namespace NodeJS { interface ProcessEnv { PORT: string } } }Pourquoi un objet de config typé est préférable
Une config analysée et validée fournit les types corrects (nombres, booléens, unions), garantit la présence des variables obligatoires et offre un import unique pour toute l’application, au lieu de lectures dangereuses et dispersées de process.env.
Vérification rapide
Vérification rapide de cette leçon.
Récapitulatif
Déclarez une interface Env typée, puis analysez process.env avec des utilitaires qui convertissent et valident les valeurs (nombres, booléens, unions de chaînes) et échouent lorsque des variables obligatoires sont absentes. Exportez un objet config typé afin que l’application ne touche jamais directement à process.env brut.
Questions Fréquemment Posées
La leçon « Typer les variables d’environnement » est-elle gratuite ?
Oui — le texte complet de « Typer les variables d’environnement » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours TypeScript Academy, passe à CoddyKit PRO. Le cours TypeScript Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Typer les variables d’environnement » ?
Donner à process.env un type précis et validé. Tu pratiques TypeScript Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer TypeScript Academy ?
Aucune expérience préalable n'est requise. TypeScript Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Typer les variables d’environnement » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon TypeScript Academy ?
Oui. Chaque leçon TypeScript Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Typer les variables d’environnement
- Configuration validée par schéma
- Couches de configuration et valeurs par défaut
- Secrets et sécurité du typage