Hur man använder TypeScript-klasser med enkla exempel

TypeScript ger kraftfulla funktioner till JavaScript, inklusive konceptet med klasser, som möjliggör objektorienterad programmering. Klasser ger en ritning för att skapa objekt, kapsla in data och definiera beteenden. Den här guiden går igenom grunderna i TypeScript-klasser med enkla exempel.

Vad är en klass?

En klass är en ritning för att skapa objekt med fördefinierade egenskaper och metoder. Det hjälper till att organisera kod, främja återanvändbarhet och skapa skalbara applikationer. Klasser i TypeScript fungerar på samma sätt som klasser i andra objektorienterade programmeringsspråk.

Definiera en grundläggande klass

För att definiera en klass i TypeScript, använd nyckelordet class följt av klassnamnet och en uppsättning hängslen som innehåller egenskaper och metoder.

Exempel på grundläggande klass

Nedan är ett exempel på en enkel klass Person med egenskaper och en 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.

I det här exemplet har klassen Person två egenskaper: namn och ålder. Konstruktormetoden initierar dessa egenskaper och metoden greet matar ut ett hälsningsmeddelande.

Åtkomstmodifierare

TypeScript tillhandahåller tre åtkomstmodifierare för att kontrollera synligheten för klassmedlemmar:

  • public: Medlemmar är tillgängliga från var som helst (standard).
  • privat: Medlemmar är endast tillgängliga inom klassen.
  • protected: Medlemmar är tillgängliga inom klassen och dess underklasser.

Använda åtkomstmodifierare

Så här kan du använda åtkomstmodifierare i en TypeScript-klass:

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'.

I det här exemplet är namn en allmän egendom som är tillgänglig utanför klassen, medan ålder är en privat egendom, endast tillgänglig inom klassen.

Arv i TypeScript

TypeScript stöder arv, vilket gör att en klass kan ärva egenskaper och metoder från en annan klass. Detta hjälper till att återanvända kod och skapa en hierarki av klasser.

Arvsexempel

Nedan är ett exempel på en klass Hund som ärver från en basklass Djur:

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.

I det här exemplet utökar klassen Dog klassen Animal och åsidosätter metoden makeSound.

Getters och Setters

TypeScript låter dig definiera getters och seters för egenskaper, vilket ger kontrollerad åtkomst till klassmedlemmar.

Getters och Setters Exempel

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

I det här exemplet nås och ändras egenskapen name med getter- och settermetoder.

Slutsats

TypeScript-klasser är ett kraftfullt sätt att skriva objektorienterad kod på ett rent och effektivt sätt. De tillhandahåller ett strukturerat sätt att definiera egenskaper, metoder, åtkomstmodifierare, arv och mer. Genom att förstå hur man använder TypeScript-klasser kan du skriva mer robust och underhållbar kod för dina applikationer.