0Pricing
TypeScript Academy · درس

إعادة تعيين المفاتيح باستخدام as في الأنواع المُحوَّلة

أعيدوا تسمية المفاتيح أثناء تحويل النوع

إعادة تعيين المفاتيح باستخدام as في الأنواع المُحوَّلة درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 4 دروس في المجموع.

مرحبًا

أضافت TypeScript 4.1 عبارة `as` في الأنواع المُحوَّلة، مما يتيح إعادة تعيين المفاتيح (إعادة تسميتها) بوصف ذلك جزءًا من تحويل النوع.

إعادة تعيين أسماء المفاتيح الأساسية

أضف `as NewKeyType` بعد متغير المفتاح لإعادة تعيينه إلى اسم مفتاح جديد.
type Prefixed<T> = {
  [K in keyof T as `prefix_${string & K}`]: T[K]
};
type P = Prefixed<{ name: string }>;
// { prefix_name: string }

تصفية المفاتيح باستخدام never

أعد never من عبارة `as` لإزالة ذلك المفتاح من النوع الناتج.
type OnlyStrings<T> = {
  [K in keyof T as T[K] extends string ? K : never]: T[K]
};

إنشاء أسماء Getter

استخدم Capitalize مع الأنواع القالبية النصية لإنشاء أسماء دوال Getter.
type Getters<T> = {
  [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K]
};
type UserGetters = Getters<{ name: string; age: number }>;
// { getName: () => string; getAge: () => number }

إنشاء أسماء Setter

وبالمثل، أنشئ أسماء Setter لخصائص النوع.
type Setters<T> = {
  [K in keyof T as `set${Capitalize<string & K>}`]: (val: T[K]) => void
};

عكس نوع Record

بدّل بين المفاتيح والقيم باستخدام إعادة تعيين المفاتيح.
type Invert<T extends Record<string, string>> = {
  [K in keyof T as T[K]]: K
};

إعادة تعيين المفاتيح بشكل مشروط

طبّق تحويلات مختلفة على المفاتيح استنادًا إلى نوع القيمة.
type MethodKeys<T> = {
  [K in keyof T as T[K] extends Function ? K : never]: T[K]
};

الدمج مع الأنواع القالبية النصية

استخدم الأنواع القالبية النصية في إعادة التعيين لإنشاء مفاتيح ذات مساحات أسماء.
type Namespaced<T, NS extends string> = {
  [K in keyof T as `${NS}::${string & K}`]: T[K]
};

تعيين المفاتيح الرمزية

باستخدام إعادة تعيين المفاتيح، يمكنك أيضًا التعامل مع المفاتيح الرمزية.

تطبيق عملي: نوع FormData

اشتق كائن نموذج ذي قيم نصية من نموذج بيانات محدد الأنواع.
type FormFields<T> = {
  [K in keyof T as K extends string ? K : never]: string
};

دمج as مع الأنواع الشرطية

تتحد إعادة تعيين المفاتيح والأنواع الشرطية لإنشاء تحويلات قوية ومعبرة للأنواع.

تحقق سريع

ماذا يحدث لذلك المفتاح عند إرجاع `never` من عبارة `as` في نوع مُعيَّن؟

مراجعة

تتيح لك عبارة `as` في الأنواع المُعيَّنة إعادة تسمية المفاتيح وتصفيتها (باستخدام never) وتحويلها باستخدام الأنواع القالبية النصية والأنواع الشرطية. وتتيح أنماطًا قوية مثل إنشاء أسماء Getter وSetter وتصفيـة الخصائص حسب نوع القيمة.

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

هل درس «إعادة تعيين المفاتيح باستخدام as في الأنواع المُحوَّلة» مجاني؟

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

ماذا ستتعلم في «إعادة تعيين المفاتيح باستخدام as في الأنواع المُحوَّلة»؟

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

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

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

كم من الوقت يستغرق درس «إعادة تعيين المفاتيح باستخدام as في الأنواع المُحوَّلة»؟

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

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

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

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

  1. الأنواع المُحوَّلة: تحويل أنواع الكائنات
  2. المعدّلات في الأنواع المُحوَّلة: ‏readonly و?
  3. أنواع القوالب الحرفية: أنماط السلاسل النصية
  4. إعادة تعيين المفاتيح باستخدام as في الأنواع المُحوَّلة
← العودة إلى TypeScript Academy