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

การตรวจสอบขณะทำงานด้วย Zod

ตรวจสอบและอนุมานชนิดการตอบกลับ API ด้วยสคีมา Zod

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

ยินดีต้อนรับ

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

การติดตั้ง Zod

ติดตั้ง Zod ในโปรเจกต์ของคุณ
npm install zod

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

กำหนดสคีมาและอนุมานชนิด TypeScript ของสคีมานั้น
import { z } from 'zod';
const UserSchema = z.object({
  id: z.number(),
  name: z.string(),
  email: z.string().email(),
});
type User = z.infer<typeof UserSchema>;

การแยกวิเคราะห์ข้อมูล

ใช้ schema.parse() เพื่อตรวจสอบ โดยเมธอดนี้จะโยนข้อผิดพลาดเมื่อล้มเหลว
const user = UserSchema.parse({ id: 1, name: 'Alice', email: 'a@b.com' });
// user is typed as User

การแยกวิเคราะห์อย่างปลอดภัย

ใช้ safeParse() เพื่อรับข้อผิดพลาดเป็นค่าแทนการโยนข้อผิดพลาด
const result = UserSchema.safeParse(unknownData);
if (result.success) {
  console.log(result.data); // User
} else {
  console.log(result.error.issues);
}

สคีมาอาร์เรย์และออบเจ็กต์

ประกอบสคีมาที่ซับซ้อนด้วย z.array และ z.object
const UsersSchema = z.array(UserSchema);
const CreateUserSchema = UserSchema.omit({ id: true });

ค่าที่ไม่บังคับและค่าว่างได้

ทำเครื่องหมายฟิลด์ว่าเป็นค่าที่ไม่บังคับหรือรับค่าว่างได้
const Schema = z.object({
  name: z.string(),
  bio: z.string().optional(),   // string | undefined
  avatar: z.string().nullable(), // string | null
});

Enum และ Union

ตรวจสอบค่า enum และชนิด union
const StatusSchema = z.enum(['active', 'inactive', 'banned']);
const InputSchema = z.string().or(z.number());

การแปลง

แปลงค่าที่แยกวิเคราะห์แล้ว
const PriceSchema = z.string().transform(s => parseFloat(s));

Zod ในเส้นทาง API

ตรวจสอบเนื้อหาคำขอในเส้นทาง API ของ Express/Next.js
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);
});

ตัวตรวจสอบแบบกำหนดเอง

เพิ่มการปรับแต่งแบบกำหนดเองให้กับสคีมา
const PasswordSchema = z.string().min(8).refine(
  s => /[A-Z]/.test(s), { message: 'Need uppercase' }
);

ตรวจสอบสั้น ๆ

Zod มีเมธอดใดสำหรับตรวจสอบข้อมูลโดยไม่โยนข้อผิดพลาดเมื่อล้มเหลว

สรุปทบทวน

การตรวจสอบขณะทำงานด้วย Zod: คุณเชี่ยวชาญแนวคิดสำคัญและรูปแบบการใช้งานแล้ว

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

บทเรียน “การตรวจสอบขณะทำงานด้วย Zod” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การตรวจสอบขณะทำงานด้วย Zod”

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

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

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

บทเรียน “การตรวจสอบขณะทำงานด้วย Zod” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การระบุชนิดการตอบกลับของ Fetch ด้วยตัวห่อหุ้มเจเนอริก
  2. การตรวจสอบขณะทำงานด้วย Zod
  3. การสร้างโค้ด OpenAPI: ชนิดที่สร้างโดยอัตโนมัติ
  4. ภาพรวมไคลเอนต์ tRPC ที่ปลอดภัยด้านชนิด
← กลับไปที่ TypeScript Academy