Slik bruker du TypeScript-klasser med enkle eksempler

TypeScript bringer kraftige funksjoner til JavaScript, inkludert konseptet med klasser, som tillater objektorientert programmering. Klasser gir en blåkopi for å lage objekter, innkapsle data og definere atferd. Denne veiledningen vil lede deg gjennom det grunnleggende om TypeScript-klasser med enkle eksempler.

Hva er en klasse?

En klasse er en blåkopi for å lage objekter med forhåndsdefinerte egenskaper og metoder. Det hjelper med å organisere kode, fremme gjenbrukbarhet og lage skalerbare applikasjoner. Klasser i TypeScript fungerer på samme måte som klasser i andre objektorienterte programmeringsspråk.

Definere en grunnleggende klasse

For å definere en klasse i TypeScript, bruk nøkkelordet class etterfulgt av klassenavnet og et sett med krøllete klammeparenteser som inneholder egenskaper og metoder.

Grunnleggende klasseeksempel

Nedenfor er et eksempel på en enkel Person-klasse med egenskaper og en metode:

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 dette eksemplet har Person-klassen to egenskaper: navn og alder. Konstruktørmetoden initialiserer disse egenskapene, og greet-metoden sender ut en hilsen.

Tilgangsmodifikatorer

TypeScript gir tre tilgangsmodifikatorer for å kontrollere synligheten til klassemedlemmer:

  • public: Medlemmer er tilgjengelige fra hvor som helst (standard).
  • privat: Medlemmer er kun tilgjengelige innenfor klassen.
  • beskyttet: Medlemmer er tilgjengelige innenfor klassen og dens underklasser.

Bruke tilgangsmodifikatorer

Slik kan du bruke tilgangsmodifikatorer i en TypeScript-klasse:

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 dette eksemplet er navn en offentlig eiendom, tilgjengelig fra utenfor klassen, mens alder er en privat eiendom, kun tilgjengelig innenfor klassen.

Arv i TypeScript

TypeScript støtter arv, som lar en klasse arve egenskaper og metoder fra en annen klasse. Dette hjelper med å gjenbruke kode og lage et hierarki av klasser.

Eksempel på arv

Nedenfor er et eksempel på en klasse Hund som arver fra en grunnklasse Dyr:

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 dette eksemplet utvider Dog-klassen Animal-klassen og overstyrer makeSound-metoden.

Getters og Setters

TypeScript lar deg definere gettere og settere for egenskaper, og gir kontrollert tilgang til klassemedlemmer.

Getters og Setters Eksempel

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 dette eksemplet er name-egenskapen åpnet og modifisert ved hjelp av getter- og setter-metoder.

Konklusjon

TypeScript-klasser er en kraftig måte å skrive objektorientert kode på en ren og effektiv måte. De gir en strukturert måte å definere egenskaper, metoder, tilgangsmodifikatorer, arv og mer. Ved å forstå hvordan du bruker TypeScript-klasser, kan du skrive mer robust og vedlikeholdbar kode for applikasjonene dine.