0Pricing
TypeScript Academy · درس

أساسيات مخططات Zod

عرّفوا مخططات للقيم البدائية والكائنات والمصفوفات

أساسيات مخططات Zod درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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 بنية كائن، إذ يربط كل مفتاح بمخطط لقيمته.

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» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 4 دروس في المجموع.

ماذا ستتعلم في «أساسيات مخططات Zod»؟

عرّفوا مخططات للقيم البدائية والكائنات والمصفوفات تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟

لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «أساسيات مخططات Zod»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟

نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساسيات مخططات Zod
  2. استنتاج الأنواع من المخططات
  3. parse مقابل safeParse
  4. تركيب المخططات وتنقيحها
← العودة إلى TypeScript Academy