0Pricing
TypeScript Academy · บทเรียน

พื้นฐานสคีมา Zod

กำหนดสคีมาสำหรับชนิดข้อมูลพื้นฐาน ออบเจ็กต์ และอาร์เรย์

พื้นฐานสคีมา Zod เป็นบทเรียน TypeScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน TypeScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงต้องตรวจสอบระหว่างการทำงาน

ชนิดข้อมูลของ TypeScript จะหายไปเมื่อโปรแกรมทำงาน ข้อมูลจาก API ฟอร์ม และไฟล์ไม่มีการระบุชนิดข้อมูลที่ขอบเขตการรับข้อมูล Zod จะตรวจสอบข้อมูลเหล่านั้นระหว่างการทำงาน และมอบชนิดข้อมูลให้คุณด้วย

import { z } from "zod";
// Types check at compile time; Zod checks values at runtime.

การนำเข้า Zod

นำเข้าเนมสเปซ z จากแพ็กเกจ zod ตัวสร้างสคีมาทุกตัวอยู่บน z

import { z } from "zod";
const nameSchema = z.string();
// nameSchema validates that a value is a string.

สคีมาชนิดข้อมูลพื้นฐาน

Zod มีตัวสร้างสำหรับชนิดข้อมูลพื้นฐาน ได้แก่ z.string(), z.number() และ z.boolean() ซึ่งแต่ละตัวใช้ตรวจสอบค่าชนิดหนึ่งโดยเฉพาะ

import { z } from "zod";
const name = z.string();
const age = z.number();
const active = z.boolean();
// Use .parse(value) to validate at runtime.

การตรวจสอบค่า

เรียกใช้ .parse บนสคีมาเพื่อตรวจสอบค่า เมธอดนี้จะคืนค่าหากค่าถูกต้อง และจะแจ้งข้อผิดพลาดหากไม่ถูกต้อง

import { z } from "zod";
const schema = z.string();
const result = schema.parse("hello"); // "hello"
const broken = schema.parse(123); // throws ZodError

สคีมาของออบเจ็กต์

z.object ใช้อธิบาย shape ของออบเจ็กต์ โดยจับคู่คีย์แต่ละตัวกับสคีมาของค่าในคีย์นั้น

import { z } from "zod";
const userSchema = z.object({
  name: z.string(),
  age: z.number()
});
// userSchema.parse({ name: "Ada", age: 36 }) succeeds.

สคีมาของอาร์เรย์

z.array ใช้ตรวจสอบว่าค่าเป็นอาร์เรย์ที่สมาชิกทุกตัวตรงกับสคีมาที่กำหนด

import { z } from "zod";
const tags = z.array(z.string());
// tags.parse(["a", "b"]) succeeds; tags.parse([1]) throws.

การซ้อนสคีมา

สคีมาสามารถประกอบเข้าด้วยกันได้ ออบเจ็กต์หนึ่งสามารถมีอาร์เรย์และออบเจ็กต์อื่นอยู่ภายใน ซึ่งสะท้อนรูปแบบข้อมูลจริงของคุณ

import { z } from "zod";
const post = z.object({
  title: z.string(),
  tags: z.array(z.string()),
  author: z.object({ name: z.string() })
});
// Validates nested structure in one call.

บูลีนและตัวเลขร่วมกัน

รวมชนิดข้อมูลของหลายฟิลด์ไว้ในสคีมาของออบเจ็กต์เดียว เพื่อจำลองระเบียนข้อมูลที่ใกล้เคียงกับความเป็นจริง

import { z } from "zod";
const product = z.object({
  name: z.string(),
  price: z.number(),
  inStock: z.boolean()
});
// product.parse({ name: "Pen", price: 2, inStock: true });

สคีมาคือค่า

สคีมา Zod เป็นค่า JavaScript ทั่วไปที่คุณจัดเก็บ ส่งต่อ และนำกลับมาใช้ใหม่ได้ ต่างจากชนิดข้อมูลของ TypeScript ที่มีอยู่เฉพาะขณะคอมไพล์เท่านั้น

import { z } from "zod";
const emailSchema = z.string();
function check(s: typeof emailSchema, v: unknown) {
  return s.parse(v);
}
// You can pass schemas as arguments.

การตรวจสอบอินพุตที่ไม่ทราบชนิด

Zod เหมาะอย่างยิ่งสำหรับข้อมูล unknown เช่น เพย์โหลด JSON ที่แยกวิเคราะห์แล้ว เพราะสามารถตรวจสอบและจำกัดชนิดของค่าได้อย่างปลอดภัย

import { z } from "zod";
const schema = z.object({ id: z.number() });
const raw: unknown = JSON.parse("{ \"id\": 1 }");
const data = schema.parse(raw); // data.id is number

องค์ประกอบพื้นฐานสำหรับบทเรียนนี้

ด้วย z.object, z.string, z.number, z.array และ z.boolean คุณสามารถอธิบายข้อมูลส่วนใหญ่ได้ ขั้นต่อไปเราจะอนุมานชนิดข้อมูล TypeScript จากสคีมาเหล่านี้

import { z } from "zod";
const schema = z.object({
  name: z.string(),
  scores: z.array(z.number())
});
// One schema, ready to validate and to infer a type from.

แบบทดสอบสั้น ๆ: พื้นฐาน Zod

ทดสอบความเข้าใจเกี่ยวกับพื้นฐานสคีมา Zod

สรุป: พื้นฐานสคีมา Zod

คุณได้เรียนรู้วิธีนำเข้า z และสร้างสคีมาด้วย z.object, z.string, z.number, z.array และ z.boolean จากนั้นตรวจสอบค่าระหว่างการทำงานด้วย .parse

import { z } from "zod";
const userSchema = z.object({ name: z.string(), age: z.number() });
// userSchema.parse({ name: "Ada", age: 36 });

คำถามที่พบบ่อย

บทเรียน “พื้นฐานสคีมา Zod” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พื้นฐานสคีมา Zod” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐานสคีมา Zod”

กำหนดสคีมาสำหรับชนิดข้อมูลพื้นฐาน ออบเจ็กต์ และอาร์เรย์ คุณปฏิบัติ TypeScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “พื้นฐานสคีมา Zod” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม

ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐานสคีมา Zod
  2. การอนุมานชนิดข้อมูลจากสคีมา
  3. parse เทียบกับ safeParse
  4. การประกอบและปรับแต่งสคีมา
← กลับไปที่ TypeScript Academy