TypeScript Academy · Lektion

Validering vid körning med Zod

Validera och härled typer för API-svar med Zod-scheman

Lektion 2 av 413 steg

Validering vid körning med Zod ä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.

Välkommen

Zod är ett schema-valideringsbibliotek för TypeScript som härleder typer från scheman och erbjuder både validering vid körning och typer vid kompilering.

Installera Zod

Installera Zod i projektet.
npm install zod

Grundläggande schema

Definiera ett schema och härled dess TypeScript-typ.
import { z } from 'zod';
const UserSchema = z.object({
  id: z.number(),
  name: z.string(),
  email: z.string().email(),
});
type User = z.infer<typeof UserSchema>;

Tolka data

Använd schema.parse() för validering. Metoden kastar ett fel vid misslyckande.
const user = UserSchema.parse({ id: 1, name: 'Alice', email: 'a@b.com' });
// user is typed as User

Säker tolkning

Använd safeParse() för att få fel som värden i stället för att kasta dem.
const result = UserSchema.safeParse(unknownData);
if (result.success) {
  console.log(result.data); // User
} else {
  console.log(result.error.issues);
}

Array- och objektscheman

Sätt samman komplexa scheman med z.array och z.object.
const UsersSchema = z.array(UserSchema);
const CreateUserSchema = UserSchema.omit({ id: true });

Valfria och nullbara värden

Markera fält som valfria eller nullbara.
const Schema = z.object({
  name: z.string(),
  bio: z.string().optional(),   // string | undefined
  avatar: z.string().nullable(), // string | null
});

Enum och union

Validera enum-värden och union-typer.
const StatusSchema = z.enum(['active', 'inactive', 'banned']);
const InputSchema = z.string().or(z.number());

Transform

Transformera tolkade värden.
const PriceSchema = z.string().transform(s => parseFloat(s));

Zod i API-rutter

Validera request bodies i Express-/Next.js-API-rutter.
app.post('/users', async (req, res) => {
  const result = CreateUserSchema.safeParse(req.body);
  if (!result.success) return res.status(400).json(result.error);
  const user = await db.create(result.data); // typed!
  res.json(user);
});

Anpassade validatorer

Lägg till anpassade refinements i scheman.
const PasswordSchema = z.string().min(8).refine(
  s => /[A-Z]/.test(s), { message: 'Need uppercase' }
);

Snabbtest

Vilken metod tillhandahåller Zod för att validera data utan att kasta ett fel vid misslyckande?

Sammanfattning

Validering vid körning med Zod: du har bemästrat de viktigaste koncepten och mönstren.
Gratis att börja

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 ”Validering vid körning med Zod” gratis?

Ja – hela texten till ”Validering vid körning med Zod” 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 ”Validering vid körning med Zod”?

Validera och härled typer för API-svar med Zod-scheman 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 ”Validering vid körning med Zod”?

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

  1. Typa fetch-svar med generiska wrappers
  2. Validering vid körning med Zod
  3. OpenAPI-kodgenerering: automatiskt genererade typer
  4. Översikt över typsäker tRPC-klient
← Tillbaka till TypeScript Academy