الأنواع المُحوّلة باستخدام +/-readonly و +/-?
استكشف الأنواع المُحوّلة والمعدّلات (+/-readonly و +/-optional) لإنشاء تنويعات مرنة من بُنى الكائنات.
الأنواع المُحوّلة باستخدام +/-readonly و +/-? درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 3 دروس في المجموع.
مقدمة
الهدف: تعلّم الأنواع المعيَّنة مع المعدِّلات لتغيير خصائص الكائنات بطريقة منهجية. تتيح لكم إنشاء إصدارات readonly أو اختيارية أو إلزامية من الأنواع.
النوع المعيَّن الأساسي
يكرّر النوع المعيَّن على المفاتيح ويعيد استخدام أنواع الخصائص. وهذا هو الأساس لإجراء التحويلات.
type Options = { a: string; b: number }
type Clone<T> = { [K in keyof T]: T[K] }
type Copy = Clone<Options> // { a: string; b: number }إضافة readonly
استخدموا +readonly لفرض عدم القابلية للتغيير. فتصبح كل خاصية readonly.
type ReadonlyT<T> = { [K in keyof T]+readonly: T[K] }
interface User { id: number; name: string }
type Locked = ReadonlyT<User> // all props readonlyإزالة readonly
استخدموا -readonly لإزالة عدم القابلية للتغيير واستعادة قابلية التعديل.
type Mutable<T> = { [K in keyof T]-readonly: T[K] }
type Editable = Mutable<Locked> // props writable againإضافة الاختيارية
تجعل ? الموضوعة بعد الخاصية تلك الخاصية اختيارية. وهذا مفيد لتحديثات الإعدادات.
type PartialT<T> = { [K in keyof T]?: T[K] }
interface Settings { dark: boolean; lang: string }
type Maybe = PartialT<Settings> // props optionalإزالة الاختيارية
استخدموا -? لإزالة الاختيارية وفرض وجود الخصائص.
type RequiredT<T> = { [K in keyof T]-?: T[K] }
type Strict = RequiredT<Maybe> // props required againالتحقق من إزالة readonly
تحقق سريع: ما صيغة النوع المعيَّن التي تزيل readonly من الخصائص؟
مراجعة
مراجعة: تتيح لكم الأنواع المعيَّنة تطبيق تحويلات على الخصائص: +/-readonly و+/-? للتحكم في قابلية التعديل والاختيارية. وهي الأساس للأنواع Partial وRequired وReadonly.
الأسئلة الشائعة
هل درس «الأنواع المُحوّلة باستخدام +/-readonly و +/-?» مجاني؟
نعم — نص درس «الأنواع المُحوّلة باستخدام +/-readonly و +/-?» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 3 دروس في المجموع.
ماذا ستتعلم في «الأنواع المُحوّلة باستخدام +/-readonly و +/-?»؟
استكشف الأنواع المُحوّلة والمعدّلات (+/-readonly و +/-optional) لإنشاء تنويعات مرنة من بُنى الكائنات. تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟
لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.
كم من الوقت يستغرق درس «الأنواع المُحوّلة باستخدام +/-readonly و +/-?»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟
نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الأنواع المُحوّلة باستخدام +/-readonly و +/-?
- إعادة تعيين المفاتيح وأنواع القوالب الحرفية
- الكتابة وفق أنماط السلاسل (معاملات المسارات وأسماء الأحداث)