0Pricing
TypeScript Academy · درس

ميزات الفئات المتقدمة

اكتشف ميزات الفئات المتقدمة، مثل الفئات المجردة ومعدِّلات الوصول والأعضاء الساكنة، لكتابة شيفرة TypeScript نظيفة و modular وموجهة للكائنات

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

مقدمة إلى ميزات الأصناف المتقدمة

مقدمة إلى ميزات الأصناف المتقدمة

توفر TypeScript عدة ميزات متقدمة للأصناف تساعدك على كتابة تعليمات برمجية كائنية التوجه، معيارية وقابلة للتوسع والصيانة.

في هذا الدرس، ستتعرّف على معدّلات الوصول، والأصناف المجردة، والأعضاء الثابتة، وغير ذلك.

ميزات الفئات المتقدمة — رسم توضيحي 1

نظرة عامة على ميزات الأصناف المتقدمة

مقدمة إلى ميزات الأصناف المتقدمة

توفر TypeScript عدة ميزات متقدمة للأصناف تساعدك على كتابة تعليمات برمجية كائنية التوجه، معيارية وقابلة للتوسع والصيانة.

في هذا الدرس، ستتعرّف على معدّلات الوصول، والأصناف المجردة، والأعضاء الثابتة، وغير ذلك.

ميزات الفئات المتقدمة — رسم توضيحي 2

معدّلات الوصول

معدّلات الوصول

توفر TypeScript ثلاثة معدّلات وصول للتحكم في مستوى ظهور أعضاء الصنف:

  • public: يمكن الوصول إليه من أي مكان (القيمة الافتراضية).
  • private: لا يمكن الوصول إليه إلا داخل الصنف.
  • protected: يمكن الوصول إليه داخل الصنف وأصنافه الفرعية.
class Person {
  public name: string;
  private age: number;
  protected role: string;

  constructor(name: string, age: number, role: string) {
    this.name = name;
    this.age = age;
    this.role = role;
  }
}

class Employee extends Person {
  getRole(): string {
    return this.role; // Accessible because it's protected
  }
}

الأصناف المجردة

الأصناف المجردة

تُستخدم الأصناف المجردة كمخططات لأصناف أخرى. ولا يمكن إنشاء مثيلات منها مباشرةً، وقد تتضمن أساليب مجردة.

abstract class Shape {
  abstract getArea(): number;
}

class Circle extends Shape {
  constructor(public radius: number) {
    super();
  }

  getArea(): number {
    return Math.PI * this.radius ** 2;
  }
}

const circle = new Circle(5);
console.log(circle.getArea()); // 78.54

الأعضاء الثابتة

الأعضاء الثابتة

تنتمي الأعضاء الثابتة إلى الصنف نفسه، وليس إلى أي مثيل من مثيلاته. ويتم الوصول إليها باستخدام اسم الصنف.

class MathUtils {
  static PI = 3.14;

  static calculateCircleArea(radius: number): number {
    return this.PI * radius ** 2;
  }
}

console.log(MathUtils.PI); // 3.14
console.log(MathUtils.calculateCircleArea(5)); // 78.5

دوال getter وsetter

دوال getter وsetter

تتيح لك دوال getter وsetter التحكم في كيفية الوصول إلى الخصائص أو تعديلها داخل الصنف.

class Person {
  private _name: string;

  constructor(name: string) {
    this._name = name;
  }

  get name(): string {
    return this._name;
  }

  set name(newName: string) {
    this._name = newName;
  }
}

const person = new Person('Alice');
console.log(person.name); // Alice
person.name = 'Bob';
console.log(person.name); // Bob

الخصائص للقراءة فقط

الخصائص للقراءة فقط

يضمن المعدّل readonly إمكانية تعيين الخاصية أثناء التهيئة فقط، وعدم تعديلها لاحقًا.

class Vehicle {
  readonly make: string;

  constructor(make: string) {
    this.make = make;
  }
}

const car = new Vehicle('Toyota');
console.log(car.make); // Toyota
// car.make = 'Honda'; // Error: Cannot assign to 'make' because it is a read-only property.

المنشئات الخاصة والمحمية

المنشئات الخاصة والمحمية

يمكن أن تحتوي الأصناف على منشئات خاصة أو محمية للتحكم في كيفية ومكان إنشاء مثيلاتها.

class Singleton {
  private static instance: Singleton;

  private constructor() {}

  static getInstance(): Singleton {
    if (!this.instance) {
      this.instance = new Singleton();
    }
    return this.instance;
  }
}

const singleton = Singleton.getInstance();
console.log(singleton);

مهمة تدريبية

مهمة تدريبية

أنشئ فئة تحتوي على مُنشئ protected، ثم وسّعها في فئة فرعية. أضف أساليب للوصول إلى الخصائص المحمية في الفئة الفرعية.

تهانينا!

تهانينا!

لقد تعلمت ميزات متقدمة للفئات، مثل محددات الوصول، والفئات المجرّدة، والأعضاء الساكنة، وغير ذلك. مارس هذه المفاهيم لكتابة شيفرة TypeScript كائنية التوجه نظيفة وفعالة!

ميزات الفئات المتقدمة — رسم توضيحي 11

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

هل درس «ميزات الفئات المتقدمة» مجاني؟

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

ماذا ستتعلم في «ميزات الفئات المتقدمة»؟

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

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

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

كم من الوقت يستغرق درس «ميزات الفئات المتقدمة»؟

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

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

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

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

  1. تضييق الأنواع المتقدم
  2. ميزات الفئات المتقدمة
  3. الأنواع الشرطية
← العودة إلى TypeScript Academy