0Pricing
TypeScript Academy · درس

Partial و Readonly و Record و Pick و Omit

أتقن أنواع الأدوات الأساسية لإعادة تشكيل الكائنات: Partial و Readonly و Record و Pick و Omit.

Partial و Readonly و Record و Pick و Omit درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 2 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 3 دروس في المجموع.

مقدمة

الهدف: إعادة تشكيل أنواع الكائنات بأمان باستخدام Partial وReadonly وRecord وPick وOmit. تزيل هذه الأدوات التعليمات المتكررة وتمنع الأخطاء.

Partial

يجعل Partial<T> جميع الخصائص اختيارية، وهو مثالي لحمولات التحديث.

interface User {
  id: number;
  name: string;
  email?: string;
}

type UserUpdate = Partial<User>;
const patch: UserUpdate = { name: "Ada" }; // only changed fields

Readonly

يمنع Readonly<T> إعادة إسناد الخصائص، وهو مناسب جداً للإعدادات المشتركة.

type Config = Readonly<{ api: string; timeout: number }>;
const cfg: Config = { api: "https://api", timeout: 1000 };
// cfg.timeout = 2000; // Error: readonly

Record

ينشئ Record<K,T> نوعاً بمفاتيح مأخوذة من الاتحاد K وقيم موحّدة من النوع T.

type Status = "idle" | "loading" | "error";
type Flags = Record<Status, boolean>;
const f: Flags = { idle: true, loading: false, error: false };

// Also works for arbitrary string keys
const scores: Record<string, number> = { math: 95, eng: 88 };

Pick وOmit

يختار Pick خصائص معينة، بينما يزيل Omit بعضها. وهما مثاليان لنماذج العرض وأنواع DTO الخاصة بواجهات API.

interface User {
  id: number;
  name: string;
  email?: string;
  role: "user" | "admin";
}

type PublicUser = Pick<User, "id" | "name">;
type PrivateUser = Omit<User, "role">;

const pu: PublicUser = { id: 1, name: "Ada" };
const pr: PrivateUser = { id: 1, name: "Ada", email: "a@x.io" };

نصائح

نصائح:

  • اجمع بين الأدوات: Readonly<Partial<T>> لإنشاء ترقيعات غير قابلة للتغيير.
  • استخدم Record لخرائط key → value.
  • فضّل Pick/Omit على إعادة تعريف أنواع متشابهة.

فحص أداة Record

فحص سريع: أي أداة تربط مجموعة من المفاتيح بنوع قيمة واحد؟

خلاصة

خلاصة: استخدم Partial للترقيعات، وReadonly لعدم قابلية التغيير، وRecord لخرائط key→value، وPick/Omit لإعادة تشكيل النماذج بسرعة.

الأسئلة الشائعة

هل درس «Partial و Readonly و Record و Pick و Omit» مجاني؟

نعم — نص درس «Partial و Readonly و Record و Pick و Omit» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 3 دروس في المجموع.

ماذا ستتعلم في «Partial و Readonly و Record و Pick و Omit»؟

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

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

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

كم من الوقت يستغرق درس «Partial و Readonly و Record و Pick و Omit»؟

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

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

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

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

  1. الدوال العامة والقيود (extends والمعاملات الافتراضية)
  2. Partial و Readonly و Record و Pick و Omit
  3. أنواع keyof والوصول المفهرس (مقدمة)
← العودة إلى TypeScript Academy