Cum să utilizați clase TypeScript cu exemple simple

TypeScript aduce caracteristici puternice JavaScript, inclusiv conceptul de clase, care permite programarea orientată pe obiecte. Clasele oferă un plan pentru crearea de obiecte, încapsularea datelor și definirea comportamentelor. Acest ghid vă va ghida prin elementele de bază ale claselor TypeScript cu exemple simple.

Ce este o clasă?

O clasă este un plan pentru crearea de obiecte cu proprietăți și metode predefinite. Ajută la organizarea codului, promovarea reutilizabilității și crearea de aplicații scalabile. Clasele din TypeScript funcționează în mod similar cu clasele din alte limbaje de programare orientate pe obiecte.

Definirea unei clase de bază

Pentru a defini o clasă în TypeScript, utilizați cuvântul cheie class urmat de numele clasei și un set de acolade care conțin proprietăți și metode.

Exemplu de clasă de bază

Mai jos este un exemplu de clasă simplă Person cu proprietăți și o metodă:

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.

În acest exemplu, clasa Persoană are două proprietăți: nume și vârsta. Metoda constructorului inițializează aceste proprietăți, iar metoda greet scoate un mesaj de salut.

Modificatori de acces

TypeScript oferă trei modificatori de acces pentru a controla vizibilitatea membrilor clasei:

  • public: Membrii sunt accesibili de oriunde (implicit).
  • private: Membrii sunt accesibili numai în cadrul clasei.
  • protected: Membrii sunt accesibili în cadrul clasei și subclaselor acesteia.

Utilizarea modificatorilor de acces

Iată cum puteți utiliza modificatorii de acces într-o clasă 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'.

În acest exemplu, name este o proprietate publică, accesibilă din afara clasei, în timp ce age este o proprietate privată, accesibilă numai în cadrul clasei.

Moștenirea în TypeScript

TypeScript acceptă moștenirea, ceea ce permite unei clase să moștenească proprietăți și metode de la o altă clasă. Acest lucru ajută la reutilizarea codului și la crearea unei ierarhii de clase.

Exemplu de moștenire

Mai jos este un exemplu de clasă Dog care moștenește dintr-o clasă de bază Animal:

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.

În acest exemplu, clasa Dog extinde clasa Animal și suprascrie metoda makeSound.

Getters și Setters

TypeScript vă permite să definiți getters și setters pentru proprietăți, oferind acces controlat membrilor clasei.

Exemplu de getters și 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

În acest exemplu, proprietatea name este accesată și modificată folosind metode getter și setter.

Concluzie

Clasele TypeScript sunt o modalitate puternică de a scrie cod orientat pe obiecte într-o manieră curată și eficientă. Ele oferă o modalitate structurată de a defini proprietăți, metode, modificatori de acces, moștenire și multe altele. Înțelegând cum să utilizați clasele TypeScript, puteți scrie cod mai robust și mai ușor de întreținut pentru aplicațiile dvs.