כיצד להשתמש במחלקות TypeScript עם דוגמאות פשוטות

TypeScript מביא ל-JavaScript תכונות עוצמתיות, כולל הרעיון של מחלקות, המאפשר תכנות מונחה עצמים. מחלקות מספקות תוכנית ליצירת אובייקטים, עטירת נתונים והגדרת התנהגויות. מדריך זה ידריך אותך דרך היסודות של שיעורי TypeScript עם דוגמאות פשוטות.

מה זה מחלקה?

מחלקה היא תוכנית ליצירת אובייקטים עם מאפיינים ושיטות מוגדרים מראש. זה עוזר בארגון קוד, קידום שימוש חוזר ויצירת יישומים ניתנים להרחבה. מחלקות ב-TypeScript פועלות בדומה למחלקות בשפות תכנות מונחה עצמים אחרות.

הגדרת כיתה בסיסית

כדי להגדיר מחלקה ב-TypeScript, השתמש במילת המפתח class ואחריה שם המחלקה וקבוצה של סוגרים מסולסלים המכילים מאפיינים ושיטות.

דוגמה לכיתה בסיסית

להלן דוגמה למחלקה פשוטה של ​​Person עם מאפיינים ושיטה:

class Person {
  name: string;
  age: number;

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

  greet(): void {
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
  }
}

const person1 = new Person("Alice", 30);
person1.greet(); // Output: Hello, my name is Alice and I am 30 years old.

בדוגמה זו, למחלקה Person יש שני מאפיינים: name ו-age. שיטת הבנאי מאתחלת את המאפיינים הללו, ומתודה greet מפלטת הודעת ברכה.

משנה גישה

TypeScript מספק שלושה מתקני גישה כדי לשלוט על הנראות של חברי הכיתה:

  • public: חברים נגישים מכל מקום (ברירת מחדל).
  • פרטי: חברים נגישים רק בתוך הכיתה.
  • protected: חברים נגישים בתוך המחלקה ותתי המחלקות שלה.

שימוש ב-Access Modifiers

כך תוכל להשתמש במדיפי גישה במחלקה של TypeScript:

class Animal {
  public name: string;
  private age: number;

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

  public getAge(): number {
    return this.age;
  }
}

const dog = new Animal("Buddy", 5);
console.log(dog.name); // Output: Buddy
console.log(dog.getAge()); // Output: 5
// console.log(dog.age); // Error: 'age' is private and only accessible within class 'Animal'.

בדוגמה זו, name הוא נכס ציבורי, הנגיש מחוץ לכיתה, בעוד שגיל הוא נכס פרטי, הנגיש רק בתוך הכיתה.

ירושה ב-TypeScript

TypeScript תומך בירושה, המאפשר למחלקה לרשת מאפיינים ושיטות ממחלקה אחרת. זה עוזר בשימוש חוזר בקוד ויצירת היררכיה של מחלקות.

דוגמה להורשה

להלן דוגמה למחלקה כלב שיורשת ממחלקה בסיסית חיה:

class Animal {
  constructor(public name: string) {}

  makeSound(): void {
    console.log(`${this.name} makes a sound.`);
  }
}

class Dog extends Animal {
  constructor(name: string) {
    super(name); // Call the constructor of the base class
  }

  makeSound(): void {
    console.log(`${this.name} barks.`);
  }
}

const dog = new Dog("Buddy");
dog.makeSound(); // Output: Buddy barks.

בדוגמה זו, המחלקה Dog מרחיבה את המחלקה Animal ועוברת את שיטת makeSound.

גטרים וסטרים

TypeScript מאפשר לך להגדיר מגברים ו-seters עבור מאפיינים, ומספק גישה מבוקרת לחברי הכיתה.

דוגמה ל-Getters and Setters

class Person {
  private _name: string;

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

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

  set name(newName: string) {
    if (newName) {
      this._name = newName;
    } else {
      console.log("Name cannot be empty.");
    }
  }
}

const person = new Person("Alice");
console.log(person.name); // Output: Alice
person.name = "Bob";
console.log(person.name); // Output: Bob

בדוגמה זו, ניתן לגשת למאפיין name ולשנות אותו באמצעות שיטות getter ו-seter.

מַסְקָנָה

מחלקות TypeScript הן דרך רבת עוצמה לכתוב קוד מונחה עצמים בצורה נקייה ויעילה. הם מספקים דרך מובנית להגדיר מאפיינים, שיטות, משנה גישה, ירושה ועוד. על ידי הבנה כיצד להשתמש במחלקות TypeScript, אתה יכול לכתוב קוד חזק יותר וניתן לתחזוקה עבור היישומים שלך.