TypeScript Academy · Les

Schema-gevalideerde configuratie

Valideer de configuratie bij het opstarten met een schema

Les 2 van 413 stappen

Schema-gevalideerde configuratie is een gratis TypeScript Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject TypeScript Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus TypeScript Academy bevat in totaal 4 lessen.

Configuratie bij het opstarten valideren

Handmatige hulpfuncties voor het parsen werken, maar een schema beschrijft de volledige structuur en regels op één plek en valideert alles bij het opstarten, zodat de app direct faalt voordat deze verzoeken verwerkt.

Wat direct falen betekent

Direct falen betekent dat het proces onmiddellijk wordt beëindigd met een duidelijke melding wanneer de configuratie onjuist is, in plaats van later tijdens een verzoek te crashen in een onduidelijk codepad.

Een schema met zod

Bibliotheken zoals zod laten je configuratie declaratief beschrijven. Elk veld geeft het type en de voorwaarden aan; validatie levert een volledig getypeerd object op.

import { z } from "zod";
const EnvSchema = z.object({
  PORT: z.coerce.number().int().positive(),
  NODE_ENV: z.enum(["development", "production"]),
  DATABASE_URL: z.string().url(),
});

Ingebouwde typeconversie

Schema's kunnen tekenreeksen naar de juiste typen converteren. z.coerce.number() zet "8081" om in 8081, zodat ruwe tekenreeksen uit de omgeving veilig echte getallen worden.

// "8081" -> 8081 via z.coerce.number()

Parsen en direct falen

Het aanroepen van parse valideert alles. Als er iets ongeldig is, gooit zod een gedetailleerde fout die je in een logbericht kunt opnemen en waarna je het proces kunt beëindigen, zodat het opstarten onmiddellijk stopt.

function loadConfig() {
  const result = EnvSchema.safeParse(process.env);
  if (!result.success) {
    console.error(result.error.format());
    process.exit(1);
  }
  return result.data;
}

Het type afleiden

Een groot voordeel: het gevalideerde type wordt met z.infer uit het schema afgeleid. Het schema is de enige bron van waarheid voor zowel controles tijdens de uitvoering als typen tijdens het compileren.

type Env = z.infer<typeof EnvSchema>;
// { PORT: number; NODE_ENV: "development" | "production"; DATABASE_URL: string }

Beschrijvende fouten

Schemavalidators melden precies welk veld is mislukt en waarom, bijvoorbeeld "PORT: positief getal verwacht". Duidelijke meldingen maken een onjuiste configuratie eenvoudig te diagnosticeren.

// e.g. { PORT: { _errors: ["Expected number, received nan"] } }

Optionele velden en standaardwaarden

Schema's drukken optionaliteit en standaardwaarden rechtstreeks uit. Daardoor verdwijnt handmatig geschreven logica voor terugvalwaarden en blijven alle regels in één declaratie staan.

const Schema = z.object({
  LOG_LEVEL: z.enum(["info", "debug"]).default("info"),
  TIMEOUT_MS: z.coerce.number().optional(),
});

Eén keer valideren, overal gebruiken

Voer de validatie één keer uit bij het opstarten en exporteer het resulterende getypeerde object. Vervolgcode kan erop vertrouwen dat de configuratie aanwezig en correct gevormd is.

export const config = loadConfig();

Verder dan Env: bestanden en argumenten

Hetzelfde schema kan configuratie uit een JSON-bestand of uit samengevoegde bronnen valideren, niet alleen uit process.env. De validatiestap staat los van de herkomst van de waarden.

Waarom schema's beter zijn dan losse controles

Een schema verenigt validatie en typering, levert consistente uitgebreide fouten, ondersteunt typeconversie en standaardwaarden en faalt direct. Zo vervangt het verspreide handmatige if-controles door één declaratie.

Korte controle

Korte controle van deze les.

Samenvatting

Een configuratieschema (bijvoorbeeld zod) declareert typen, voorwaarden, typeconversie en standaardwaarden op één plek, valideert bij het opstarten om direct te falen met beschrijvende fouten en laat je de getypeerde configuratie met z.infer afleiden uit die enige bron van waarheid.

Gratis beginnen

Leer TypeScript met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
101
Lessen
352

Veelgestelde vragen

Is de les “Schema-gevalideerde configuratie” gratis?

Ja — de volledige tekst van “Schema-gevalideerde configuratie” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus TypeScript Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus TypeScript Academy bevat in totaal 4 lessen.

Wat leer ik in “Schema-gevalideerde configuratie”?

Valideer de configuratie bij het opstarten met een schema Je oefent met TypeScript Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met TypeScript Academy te beginnen?

Ervaring vooraf is niet nodig. TypeScript Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Schema-gevalideerde configuratie”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over TypeScript Academy?

Ja. Elke les over TypeScript Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Omgevingsvariabelen typen
  2. Schema-gevalideerde configuratie
  3. Configuratielagen en standaardwaarden
  4. Geheimen en typeveiligheid
← Terug naar TypeScript Academy