Zmienne środowiskowe i typowanie konfiguracji
Nadaj typ process.env za pomocą zweryfikowanego modułu konfiguracji.
Zmienne środowiskowe i typowanie konfiguracji to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej TypeScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs TypeScript Academy zawiera 4 lekcji w sumie.
Wprowadzenie
Problem
const port = process.env.PORT; // string | undefined
// server.listen(port); // could be undefined!Augmentacja modułu dla process.env
declare global {
namespace NodeJS {
interface ProcessEnv {
PORT: string;
DATABASE_URL: string;
NODE_ENV: 'development' | 'staging' | 'production';
}
}
}Wzorzec modułu konfiguracji
function requireEnv(key: string): string {
const val = process.env[key];
if (!val) throw new Error(`Missing env var: ${key}`);
return val;
}
export const config = {
port: parseInt(requireEnv('PORT')),
dbUrl: requireEnv('DATABASE_URL'),
};Zod do walidacji zmiennych środowiskowych
import { z } from 'zod';
const envSchema = z.object({
PORT: z.string().transform(Number),
DATABASE_URL: z.string().url(),
NODE_ENV: z.enum(['development', 'production']),
});
export const env = envSchema.parse(process.env);dotenv z TypeScript
import 'dotenv/config';
// Or:
import dotenv from 'dotenv';
dotenv.config();Ścisły dostęp do zmiennych środowiskowych
Konfiguracja dla różnych środowisk
const envFile = `.env.${process.env.NODE_ENV ?? 'development'}`;
dotenv.config({ path: envFile });Maskowanie sekretów w logach
console.log({ ...config, dbPassword: '***', apiKey: '***' });Flagi funkcjonalności z kontrolą typów
const flags = {
enableBeta: process.env.ENABLE_BETA === 'true',
logLevel: (process.env.LOG_LEVEL ?? 'info') as 'debug' | 'info' | 'warn',
};Testowanie ze zmiennymi środowiskowymi
// tests/setup.ts
process.env.DATABASE_URL = 'sqlite:///:memory:';
process.env.NODE_ENV = 'test';Szybki sprawdzian
Podsumowanie
Często zadawane pytania
Czy lekcja „Zmienne środowiskowe i typowanie konfiguracji” jest bezpłatna?
Tak — pełny tekst „Zmienne środowiskowe i typowanie konfiguracji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu TypeScript Academy, przejdź na CoddyKit PRO. Kurs TypeScript Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Zmienne środowiskowe i typowanie konfiguracji”?
Nadaj typ process.env za pomocą zweryfikowanego modułu konfiguracji. Ćwiczysz TypeScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć TypeScript Academy?
Nie wymagamy żadnego doświadczenia. TypeScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Zmienne środowiskowe i typowanie konfiguracji”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji TypeScript Academy?
Tak. Każda lekcja TypeScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Konfigurowanie TypeScript z Node.js
- Typowanie żądań i odpowiedzi Express
- Typowane middleware i moduły obsługi błędów
- Zmienne środowiskowe i typowanie konfiguracji