tRPC API's met typeveiligheid van begin tot eind · Les

Introductie tot Zod-schema's

Verken Zod, een TypeScript-first-bibliotheek voor schemadeclaratie en validatie, en de basistypen ervan.

Les 1 van 411 stappen

Introductie tot Zod-schema's is een gratis tRPC API's met typeveiligheid van begin tot eind-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject tRPC API's met typeveiligheid van begin tot eind. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus tRPC API's met typeveiligheid van begin tot eind bevat in totaal 4 lessen.

Wat is Zod?

Welkom bij Zod! Het is een krachtige validatiebibliotheek die in de eerste plaats voor TypeScript is gemaakt. Zie het als een bewaker van je gegevens.

Zod helpt ervoor te zorgen dat de gegevens die je applicatie binnenkomen (van API's, formulieren enzovoort) overeenkomen met de verwachte typen, zelfs tijdens runtime.

Waarom Zod gebruiken? Typeveiligheid!

TypeScript biedt typeveiligheid tijdens de ontwikkeling, maar hoe zit het met gegevens die je van een server ontvangt of die door een gebruiker worden ingevoerd? Die gegevens hebben geen TypeScript-typen.

Zod overbrugt deze kloof. Je kunt er een schema mee definiëren, runtimegegevens eraan toetsen en automatisch een TypeScript-type uit dat schema afleiden. Zo krijg je typeveiligheid van begin tot eind.

De basisbouwstenen van Zod

Zod-schema's maak je met het object z. Laten we naar de belangrijkste basistypen kijken: tekenreeksen, getallen en booleans.

  • z.string(): Voor tekstwaarden.
  • z.number(): Voor numerieke waarden.
  • z.boolean(): Voor waar/onwaar-waarden.

Dit zijn je uitgangspunten voor het definiëren van gegevensstructuren.

Een tekstreekschema declareren

Een tekstreekschema declareren is eenvoudig. Vervolgens gebruik je de methode .parse() om gegevens eraan te toetsen. Als de gegevens niet overeenkomen, genereert Zod een fout.

Voer dit voorbeeld uit om te zien hoe een geldige tekenreeks wordt geparseerd:

import { z } from 'zod';

function runExample() {
  const usernameSchema = z.string();

  const validUsername = "CoddyUser";
  const parsedUsername = usernameSchema.parse(validUsername);
  console.log(`Parsed: ${parsedUsername}`);
}

runExample();

Fouten bij tekenreeksvalidatie afhandelen

Wat gebeurt er als je gegevens probeert te parsen die geen tekenreeks zijn? Zod genereert een ZodError. Het is een goede gewoonte om aanroepen van .parse() in een blok met try...catch te plaatsen.

Voer deze code uit om te zien hoe Zod een ongeldig type opvangt:

import { z } from 'zod';

function runExample() {
  const usernameSchema = z.string();

  try {
    const invalidUsername = 123; // Not a string!
    usernameSchema.parse(invalidUsername);
  } catch (error: any) {
    console.log(`Error: ${error.message.split('\n')[0]}`);
  }
}

runExample();

Getal- en booleanschema's

Getal- en booleanschema's werken op vergelijkbare wijze. Ze zorgen ervoor dat de gegevens het juiste primitieve type hebben. Zo voorkom je onverwachte fouten later in je applicatie.

Laten we bekijken hoe je ze definieert en gebruikt:

import { z } from 'zod';

function runExample() {
  const ageSchema = z.number();
  const isActiveSchema = z.boolean();

  const validAge = ageSchema.parse(30);
  console.log(`Age: ${validAge}`);

  const validStatus = isActiveSchema.parse(true);
  console.log(`Active: ${validStatus}`);

  try {
    ageSchema.parse("twenty"); // Invalid!
  } catch (error: any) {
    console.log(`Error (Age): ${error.message.split('\n')[0]}`);
  }
}

runExample();

Velden optioneel maken

Soms is een gegeven niet altijd aanwezig. Zod biedt hiervoor de methode .optional(). Daarmee accepteert een schema naast het basistype ook undefined.

Let op: .optional() staat undefined toe, maar standaard niet null.

import { z } from 'zod';

function runExample() {
  const taglineSchema = z.string().optional();

  const withTagline = taglineSchema.parse("Hello World!");
  console.log(`With tagline: ${withTagline}`);

  const withoutTagline = taglineSchema.parse(undefined);
  console.log(`Without tagline: ${withoutTagline}`);

  try {
    taglineSchema.parse(null); // Optional doesn't allow null!
  } catch (error: any) {
    console.log(`Error (null): ${error.message.split('\n')[0]}`);
  }
}

runExample();

Exacte waarden met literals

Wat doe je als een veld een zeer specifieke, vaste waarde moet hebben? De methode .literal() van Zod is hiervoor ideaal. Deze zorgt ervoor dat de geparseerde waarde exact overeenkomt met de waarde die je definieert.

Dit is handig voor velden die zich als enumeraties gedragen en waarvan de waarden vooraf bekend zijn.

import { z } from 'zod';

function runExample() {
  const statusSchema = z.literal("pending");

  const validStatus = statusSchema.parse("pending");
  console.log(`Valid status: ${validStatus}`);

  try {
    statusSchema.parse("completed"); // Not 'pending'!
  } catch (error: any) {
    console.log(`Error (status): ${error.message.split('\n')[0]}`);
  }
}

runExample();

Bouwstenen voor complexe gegevens

Je hebt nu de basistypen en modifiers in Zod gezien. Op zichzelf zijn ze eenvoudig, maar samen vormen ze de fundamentele bouwstenen.

In de komende lessen leer je hoe je deze basisschema's combineert om veel complexere datastructuren te definiëren, zoals objecten en arrays, zodat je robuuste validatie voor je hele applicatie krijgt.

Controleer je kennis van de basisprincipes van Zod

Welk Zod-schema valideert correct een variabele die verplicht de tekenreeks "admin" of optioneel een getal moet zijn?

Herhaling van de basisprincipes van Zod

Goed gedaan! Je hebt je eerste stappen met Zod gezet en begrijpt nu het hoofddoel en de basistypen ervan.

  • Zod biedt runtimevalidatie voor TypeScript-gegevens.
  • z.string(), z.number() en z.boolean() definiëren basistypen.
  • .parse() valideert gegevens en leidt typen af.
  • Gebruik try...catch voor foutafhandeling.
  • .optional() staat waarden van undefined toe.
  • z.literal() dwingt exact vastgelegde waarden af.

Deze vaardigheden vormen de basis voor het bouwen van robuuste, typeveilige applicaties!

Gratis beginnen

Leer tRPC API's met typeveiligheid van begin tot eind 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
10
Lessen
40

Veelgestelde vragen

Is de les “Introductie tot Zod-schema's” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad tRPC API's met typeveiligheid van begin tot eind, waaronder “Introductie tot Zod-schema's”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus tRPC API's met typeveiligheid van begin tot eind bevat in totaal 4 lessen.

Wat leer ik in “Introductie tot Zod-schema's”?

Verken Zod, een TypeScript-first-bibliotheek voor schemadeclaratie en validatie, en de basistypen ervan. Je oefent met tRPC API's met typeveiligheid van begin tot eind 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 tRPC API's met typeveiligheid van begin tot eind te beginnen?

Ervaring vooraf is niet nodig. tRPC API's met typeveiligheid van begin tot eind 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 1 van 4.

Hoe lang duurt de les “Introductie tot Zod-schema's”?

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 tRPC API's met typeveiligheid van begin tot eind?

Ja. Elke les over tRPC API's met typeveiligheid van begin tot eind 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. Introductie tot Zod-schema's
  2. Complexe Zod-schema's definiëren
  3. Zod integreren in tRPC-procedures
  4. Zod-gegevens transformeren en verfijnen
← Terug naar tRPC API's met typeveiligheid van begin tot eind