0Pricing
TypeScript Academy · درس

Decorators في TypeScript

اكتشف كيف تضيف Decorators بيانات وصفية إلى شيفرتك وتبسّط التطوير في أطر مثل Angular

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

مقدمة إلى Decorators

مقدمة إلى Decorators

إن Decorators في TypeScript هي دوال خاصة تتيح لك إضافة بيانات وصفية أو تعديل سلوك الأصناف والدوال والخصائص.

تُستخدم غالبًا في أطر عمل مثل Angular لتبسيط عملية التطوير.

Decorators في TypeScript — رسم توضيحي 1

كيف تعمل Decorators

كيف تعمل Decorators

الـ decorator هو دالة تُطبَّق على صنف أو أحد أعضائه (مثل الدوال والخصائص وغيرهما).

على سبيل المثال، تُعد @Component في Angular decorator يضيف بيانات وصفية إلى صنف لتعريفه بوصفه مكوّنًا.

استخدام Decorators المضمنة

استخدام Decorators المضمنة

يحتوي TypeScript على Decorators مضمنة، مثل:

  • @readonly: تجعل الخاصية للقراءة فقط.
  • @enumerable: تتحكم في إمكانية تعداد الخاصية.

تساعد هذه الـ Decorators على تعديل سلوك الخصائص أو الدوال مباشرةً.

إنشاء decorator بسيط

إنشاء decorator بسيط

يمكنك إنشاء decorator خاص بك لتسجيل الرسائل أو إضافة وظائف:

طبّقه على خاصية: @Log.

function Log(target: any, propertyName: string) {
  console.log(`Property ${propertyName} was accessed`);
}

Decorators الخاصة بالأصناف

Decorators الخاصة بالأصناف

تُستخدم Decorators الخاصة بالأصناف لتعديل سلوك صنف كامل أو تحسينه:

function SimpleDecorator(constructor: Function) {
  console.log(`${constructor.name} is decorated`);
}

طبّقه على صنف: @SimpleDecorator.

function SimpleDecorator(constructor: Function) {
  console.log(`${constructor.name} is decorated`);
}

Decorators الخاصة بالدوال

Decorators الخاصة بالدوال

تعدّل Decorators الخاصة بالدوال سلوك إحدى دوال الصنف:

استخدمها مع دالة: @LogMethod.

function LogMethod(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
  console.log(`Method ${propertyKey} was called`);
}

استخدام Decorators في Angular

استخدام Decorators في Angular

يعتمد Angular بشكل كبير على Decorators لإضافة بيانات وصفية إلى مكوّناته:

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html'
})
export class AppComponent {}

يعرّف decorator @Component الصنف بوصفه مكوّنًا في Angular.

أفضل الممارسات لاستخدام Decorators

أفضل الممارسات لاستخدام Decorators

عند استخدام Decorators:

  • احرص على أن تكون بسيطة ومركزة.
  • استخدمها للبيانات الوصفية، وليس للمنطق المعقد.
  • استفد من Decorators المضمنة كلما أمكن لتوفير الوقت.

تهانينا!

تهانينا!

لقد تعلمت كيف تعمل Decorators في TypeScript وكيف يمكن استخدامها لتعديل تعليماتك البرمجية أو تحسينها. واصل تجربة Decorators لإتقان استخدامها في مشاريعك!

Decorators في TypeScript — رسم توضيحي 10

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

هل درس «Decorators في TypeScript» مجاني؟

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

ماذا ستتعلم في «Decorators في TypeScript»؟

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

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

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

كم من الوقت يستغرق درس «Decorators في TypeScript»؟

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

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

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

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

  1. استنتاج الأنواع والكتابة حسب السياق
  2. Decorators في TypeScript
  3. الوحدات ومساحات الأسماء في TypeScript
← العودة إلى TypeScript Academy