TypeScript Academy · درس

‏Pick وOmit: اختيار الخصائص

أنشئوا أنواعًا فرعية بتضمين المفاتيح أو استبعادها

الدرس 2 من 413 خطوة

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

مرحبًا

ينشئ Pick نوعًا يحتوي على الخصائص المحددة فقط، بينما ينشئ Omit نوعًا لا يحتوي على الخصائص المحددة. وهما أداتان متكاملتان لتشكيل أنواع الكائنات.

Pick<T, K>

احتفظ بالمفاتيح المدرجة فقط من T.
interface User { id: number; name: string; email: string; role: string; }
type PublicUser = Pick<User, 'id' | 'name'>;
// { id: number; name: string }

Omit<T, K>

أزل المفاتيح المدرجة من T.
type UserWithoutRole = Omit<User, 'role'>;
// { id: number; name: string; email: string }

استخدام Pick لنماذج العرض

استخدم Pick لإنشاء نموذج عرض من نموذج بيانات كامل لأغراض العرض.
type UserCard = Pick<User, 'name' | 'email'>;

استخدام Omit لأنواع DTO للإنشاء

استخدم Omit لإنشاء نوع إدخال يستبعد الحقول المُولَّدة تلقائيًا.
interface Post { id: number; title: string; content: string; createdAt: Date; }
type CreatePost = Omit<Post, 'id' | 'createdAt'>;
// { title: string; content: string }

كيفية تنفيذ Pick

يستخدم Pick نوعًا مُعيَّنًا مقيّدًا بالمفاتيح K.
type Pick<T, K extends keyof T> = { [P in K]: T[P] };

كيفية تنفيذ Omit

يدمج Omit بين Pick وExclude لاختيار جميع المفاتيح باستثناء المفاتيح المستبعدة.
type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;

استخدام Pick مع مفاتيح الاتحاد

مرّر اتحادًا من القيم الحرفية للمفاتيح إلى Pick.
type MinimalUser = Pick<User, 'id' | 'email'>;

استخدام Omit مع مفاتيح متعددة

أزل عدة مفاتيح دفعة واحدة باستخدام Omit.
type SafeUser = Omit<User, 'password' | 'token' | 'internalId'>;

Pick مقابل مجموعة فرعية من الواجهة

يمكن إعادة استخدام Pick مع أنواع عديدة، بينما يكون تعريف مجموعة فرعية جديدة من الواجهة إجراءً لمرة واحدة. استخدم Pick عندما يكون النوع المصدر عرضة للتغيير.

دمج Pick وOmit وPartial

ادمج أنواع الأدوات لإنشاء أشكال تحديث معقدة.
type UpdatePost = Partial<Omit<Post, 'id' | 'createdAt'>>;
// Can update title and content, both optional

تحقق سريع

ما ناتج `Pick` عند تعريف `interface User { id: number; name: string; email: string }`؟

مراجعة

يحتفظ Pick بالخصائص المدرجة فقط، بينما يزيل Omit الخصائص المدرجة. استخدمهما لإنشاء نماذج العرض وDTOs وأنواع التحديث دون تكرار تعريفات الواجهات.
البدء مجانًا

تعلم TypeScript مع معلم ذكاء اصطناعي — مجانًا

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

الدورات
101
الدروس
352

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

هل درس «‏Pick وOmit: اختيار الخصائص» مجاني؟

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

ماذا ستتعلم في «‏Pick وOmit: اختيار الخصائص»؟

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

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

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

كم من الوقت يستغرق درس «‏Pick وOmit: اختيار الخصائص»؟

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

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

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

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

  1. ‏Partial وRequired: تبديل الاختيارية
  2. ‏Pick وOmit: اختيار الخصائص
  3. ‏Record: ربط المفاتيح بأنواع القيم
  4. ‏Readonly وExclude وExtract وNonNullable
← العودة إلى TypeScript Academy