Zod-skeemojen esittely
Tutustukaa Zodiin, TypeScript-lähtöiseen skeemojen määritys- ja validointikirjastoon, sekä sen perustyyppeihin.
Zod-skeemojen esittely on ilmainen tRPC:n tyyppiturvalliset API:t päästä päähän-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu tRPC:n tyyppiturvalliset API:t päästä päähän-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. tRPC:n tyyppiturvalliset API:t päästä päähän-kurssilla on yhteensä 4 oppituntia.
Mikä Zod on?
Tervetuloa Zodin pariin! Se on tehokas, TypeScript-lähtöinen validointikirjasto. Sitä voi ajatella tietojesi vartijana.
Zod auttaa varmistamaan, että sovellukseen saapuvat tiedot (esimerkiksi rajapinnoista ja lomakkeista) vastaavat odotettuja tyyppejä myös suorituksen aikana.
Miksi Zodia käytetään? Tyyppiturvallisuus!
TypeScript tarjoaa tyyppiturvallisuuden kehityksen aikana, mutta entä palvelimelta saadut tai käyttäjän syöttämät tiedot? Näillä tiedoilla ei ole TypeScript-tyyppejä.
Zod täyttää tämän aukon! Sen avulla voit määrittää skeeman, validoida suorituksen aikana saadut tiedot sitä vasten ja päätellä automaattisesti TypeScript-tyypin skeemasta. Näin saat päästä päähän ulottuvan tyyppiturvallisuuden.
Zodin perusrakennuspalikat
Zod-skeemat luodaan käyttämällä z-objektia. Tarkastellaan perustavanlaatuisimpia tyyppejä: merkkijonoja, numeroita ja totuusarvoja.
z.string(): Tekstiarvoille.z.number(): Numeerisille arvoille.z.boolean(): tosi/epätosi-arvoille.
Näistä aloitetaan tietojen rakenteiden määrittäminen.
Merkkijonoskeeman määrittäminen
Merkkijonoskeema on helppo määrittää. Sen jälkeen .parse()-metodilla validoidaan tiedot skeemaa vasten. Jos tiedot eivät täsmää, Zod heittää virheen.
Kokeile suorittaa tämä esimerkki nähdäksesi kelvollisen merkkijonon jäsentämisen:
import { z } from 'zod';
function runExample() {
const usernameSchema = z.string();
const validUsername = "CoddyUser";
const parsedUsername = usernameSchema.parse(validUsername);
console.log(`Parsed: ${parsedUsername}`);
}
runExample();Merkkijonon validointivirheiden käsittely
Mitä tapahtuu, jos yrität jäsentää tietoja, jotka eivät ole merkkijonoja? Zod heittää ZodError-virheen. .parse()-kutsut kannattaa sijoittaa try...catch-lohkon sisään.
Suorita tämä koodi nähdäksesi, kuinka Zod havaitsee virheellisen tyypin:
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();Numero- ja totuusarvoskeemat
Numero- ja totuusarvoskeemat toimivat samalla tavalla. Ne varmistavat, että tiedot ovat oikeaa primitiivityyppiä. Näin estetään myöhemmin sovelluksessa ilmeneviä odottamattomia virheitä.
Katsotaan, miten ne määritetään ja miten niitä käytetään:
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();Kenttien tekeminen valinnaisiksi
Joskus tietoja ei välttämättä ole aina saatavilla. Zod tarjoaa tähän .optional()-metodin. Se saa skeeman hyväksymään perus-tyypin lisäksi myös undefined-arvon.
Huomaa, että .optional() sallii undefined-arvon, mutta ei oletusarvoisesti null-arvoa.
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();Tarkat arvot literaaleilla
Entä jos kentällä täytyy olla jokin hyvin tarkka, ennalta määrätty arvo? Zodin .literal()-metodi sopii tähän täydellisesti. Se varmistaa, että jäsennetty arvo on täsmälleen määrittämäsi arvo.
Tämä on hyödyllistä enum-tyyppisissä kentissä, joiden arvot tunnetaan etukäteen.
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();Monimutkaisten tietojen rakennuspalikat
Olet nyt tutustunut Zodin perustyyppeihin ja muuntimiin. Vaikka ne ovat yksinään yksinkertaisia, ne muodostavat perustavanlaatuiset rakennuspalikat.
Tulevissa oppitunneissa opit yhdistämään näitä perusskeemoja paljon monimutkaisempien tietorakenteiden, kuten objektien ja taulukoiden, määrittämiseksi ja varmistamaan koko sovelluksesi luotettavan validoinnin.
Kertaa Zodin perusteet
Mikä Zod-skeema validoi oikein muuttujan, jonka täytyy olla merkkijono "admin" tai joka voi olla valinnaisesti numero?
Zodin perusteiden kertaus
Hienoa työtä! Olet ottanut ensimmäiset askeleesi Zodin parissa ja ymmärtänyt sen keskeisen tarkoituksen ja perustyypit.
- Zod tarjoaa TypeScript-datan ajonaikaisen validoinnin.
z.string()-,z.number()- jaz.boolean()-metodit määrittävät perustyypit..parse()validoi datan ja päättelee tyypit.- Käytä virheenkäsittelyyn rakennetta
try...catch. .optional()salliiundefined-arvot.z.literal()pakottaa käyttämään täsmällisiä kiinteitä arvoja.
Nämä taidot muodostavat perustan vankkojen ja tyyppiturvallisten sovellusten rakentamiselle!
Opi tRPC:n tyyppiturvalliset API:t päästä päähän 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
- 10
- Oppitunnit
- 40
Usein kysytyt kysymykset
Onko oppitunti ”Zod-skeemojen esittely” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa tRPC:n tyyppiturvalliset API:t päästä päähän-oppimispolun 3 oppituntia, myös oppitunnin “Zod-skeemojen esittely”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. tRPC:n tyyppiturvalliset API:t päästä päähän-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Zod-skeemojen esittely”?
Tutustukaa Zodiin, TypeScript-lähtöiseen skeemojen määritys- ja validointikirjastoon, sekä sen perustyyppeihin. Harjoittelet tRPC:n tyyppiturvalliset API:t päästä päähän-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni tRPC:n tyyppiturvalliset API:t päästä päähän-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin tRPC:n tyyppiturvalliset API:t päästä päähän-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Zod-skeemojen esittely”-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ä tRPC:n tyyppiturvalliset API:t päästä päähän-oppitunnilla?
Kyllä. Jokainen tRPC:n tyyppiturvalliset API:t päästä päähän-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
- Zod-skeemojen esittely
- Monimutkaisten Zod-skeemojen määrittäminen
- Zodin integrointi tRPC-proseduureihin
- Zod-datan muuntaminen ja tarkentaminen