TypeScript Academy · Oppitunti

Ajonaikainen validointi Zodilla

Validoikaa API-vastausten tyypit ja päätelkää ne Zod-skeemoista

Oppitunti 2/413 vaihetta

Ajonaikainen validointi Zodilla on ilmainen TypeScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu TypeScript Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. TypeScript Academy-kurssilla on yhteensä 4 oppituntia.

Tervetuloa

Zod on TypeScript-ensisijainen skeemojen validointikirjasto, joka päättelee tyypit skeemoista ja tarjoaa sekä ajonaikaisen validoinnin että käännösaikaiset tyypit.

Zodin asentaminen

Asentakaa Zod projektiinne.
npm install zod

Perusskeema

Määritelkää skeema ja päätelkää siitä TypeScript-tyyppi.
import { z } from 'zod';
const UserSchema = z.object({
  id: z.number(),
  name: z.string(),
  email: z.string().email(),
});
type User = z.infer<typeof UserSchema>;

Tietojen jäsentäminen

Käyttäkää schema.parse()-metodia validointiin. Se heittää poikkeuksen epäonnistuessaan.
const user = UserSchema.parse({ id: 1, name: 'Alice', email: 'a@b.com' });
// user is typed as User

Turvallinen jäsentäminen

Käyttäkää safeParse()-metodia, jotta virheet palautetaan arvoina niiden heittämisen sijaan.
const result = UserSchema.safeParse(unknownData);
if (result.success) {
  console.log(result.data); // User
} else {
  console.log(result.error.issues);
}

Taulukko- ja objektiskeemat

Koostakaa monimutkaisia skeemoja z.array- ja z.object-rakenteilla.
const UsersSchema = z.array(UserSchema);
const CreateUserSchema = UserSchema.omit({ id: true });

Valinnainen ja nullable

Merkitkää kentät valinnaisiksi tai nullable-arvoja salliviksi.
const Schema = z.object({
  name: z.string(),
  bio: z.string().optional(),   // string | undefined
  avatar: z.string().nullable(), // string | null
});

Enum ja union

Validoikaa enum-arvot ja union-tyypit.
const StatusSchema = z.enum(['active', 'inactive', 'banned']);
const InputSchema = z.string().or(z.number());

Transform

Muuntaa jäsennettyjä arvoja.
const PriceSchema = z.string().transform(s => parseFloat(s));

Zod API-reiteillä

Validoikaa pyyntöjen rungot Expressin ja Next.js:n API-reiteillä.
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);
});

Mukautetut validaattorit

Lisätkää skeemoihin mukautettuja tarkennuksia.
const PasswordSchema = z.string().min(8).refine(
  s => /[A-Z]/.test(s), { message: 'Need uppercase' }
);

Pikatarkistus

Minkä metodin Zod tarjoaa tietojen validoimiseen ilman poikkeuksen heittämistä epäonnistumisen yhteydessä?

Kertaus

Ajonaikainen validointi Zodilla: olette hallinneet keskeiset käsitteet ja mallit.
Aloita maksutta

Opi TypeScript tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
101
Oppitunnit
352

Usein kysytyt kysymykset

Onko oppitunti ”Ajonaikainen validointi Zodilla” ilmainen?

Kyllä – oppitunnin ”Ajonaikainen validointi Zodilla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko TypeScript Academy-kurssin, päivitä CoddyKit PROhon. TypeScript Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Ajonaikainen validointi Zodilla”?

Validoikaa API-vastausten tyypit ja päätelkää ne Zod-skeemoista Harjoittelet TypeScript Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni TypeScript Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin TypeScript Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Ajonaikainen validointi Zodilla”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä TypeScript Academy-oppitunnilla?

Kyllä. Jokainen TypeScript Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Fetch-vastausten tyypittäminen geneerisillä wrappereilla
  2. Ajonaikainen validointi Zodilla
  3. OpenAPI Codegen: automaattisesti luodut tyypit
  4. Tyyppiturvallisen tRPC-asiakkaan yleiskatsaus
← Takaisin: TypeScript Academy