Schema-validerad konfiguration
Validera konfigurationen vid start med ett schema.
Schema-validerad konfiguration är en gratis lektion i TypeScript Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för TypeScript Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i TypeScript Academy innehåller totalt 4 lektioner.
Validera konfigurationen vid uppstart
Manuella hjälpfunktioner för tolkning fungerar, men ett schema beskriver hela strukturen och alla regler på en enda plats och validerar allt vid uppstart, vilket gör att appen avbryter direkt innan den börjar ta emot trafik.
Vad innebär att avbryta direkt
Att avbryta direkt innebär att processen avslutas omedelbart med ett tydligt meddelande när konfigurationen är felaktig, i stället för att krascha senare i en svårbegriplig kodväg under en begäran.
Ett schema med zod
Bibliotek som zod låter dig beskriva konfiguration deklarativt. Varje fält anger sin typ och sina begränsningar, och valideringen skapar ett fullständigt typat objekt.
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(),
});Inbyggd typkonvertering
Schema kan konvertera strängar till rätt typer. z.coerce.number() omvandlar "8081" till 8081, så att råa miljösträngar på ett säkert sätt blir riktiga tal.
// "8081" -> 8081 via z.coerce.number()Tolka och avbryt direkt
Att anropa parse validerar allt. Om något är ogiltigt kastar zod ett detaljerat fel som du kan logga och avsluta processen med, så att uppstarten stoppas omedelbart.
function loadConfig() {
const result = EnvSchema.safeParse(process.env);
if (!result.success) {
console.error(result.error.format());
process.exit(1);
}
return result.data;
}Härleda typen
En stor fördel är att den validerade typen härleds från schemat med z.infer. Schemat är den enda källan till sanning för både kontroller vid körning och typer vid kompilering.
type Env = z.infer<typeof EnvSchema>;
// { PORT: number; NODE_ENV: "development" | "production"; DATABASE_URL: string }Beskrivande fel
Schemavaliderare rapporterar exakt vilket fält som misslyckades och varför, till exempel ”PORT: ett positivt tal förväntades”. Tydliga meddelanden gör felkonfiguration enkel att diagnostisera.
// e.g. { PORT: { _errors: ["Expected number, received nan"] } }Valfria fält och standardvärden
Schema uttrycker valfrihet och standardvärden direkt, vilket tar bort handskriven reservlogik och samlar alla regler i en enda deklaration.
const Schema = z.object({
LOG_LEVEL: z.enum(["info", "debug"]).default("info"),
TIMEOUT_MS: z.coerce.number().optional(),
});Validera en gång, använd överallt
Kör valideringen en enda gång vid uppstart och exportera det resulterande typade objektet. Kod längre ned i programmet kan lita på att konfigurationen finns och har rätt format.
export const config = loadConfig();Utöver miljövariabler: filer och argument
Samma schema kan validera konfiguration från en JSON-fil eller sammanslagna källor, inte bara från process.env. Valideringssteget är oberoende av var värdena kommer ifrån.
Varför schema är bättre än ad hoc-kontroller
Ett schema förenar validering och typning, ger konsekventa och detaljerade fel, stöder typkonvertering och standardvärden samt avbryter direkt. Det ersätter utspridda manuella if-kontroller med en enda deklaration.
Snabbkontroll
En snabb kontroll av den här lektionen.
Sammanfattning
Ett konfigurationsschema (till exempel zod) deklarerar typer, begränsningar, typkonvertering och standardvärden på en enda plats, validerar vid uppstart för att avbryta direkt med beskrivande fel och låter dig härleda den typade konfigurationen med z.infer från denna enda källa till sanning.
Lär dig TypeScript med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 101
- Lektioner
- 352
Vanliga frågor
Är lektionen ”Schema-validerad konfiguration” gratis?
Ja – hela texten till ”Schema-validerad konfiguration” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i TypeScript Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i TypeScript Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Schema-validerad konfiguration”?
Validera konfigurationen vid start med ett schema. Ni övar på TypeScript Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig TypeScript Academy?
Du behöver inga förkunskaper. Utbildningen i TypeScript Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Schema-validerad konfiguration”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här TypeScript Academy-lektionen?
Ja. Varje TypeScript Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Typbestämning av miljövariabler
- Schema-validerad konfiguration
- Konfigurationslager och standardvärden
- Hemligheter och typsäkerhet