TypeScript Academy · Lektion

Avancerede klassefunktioner

Opdag avancerede klassefunktioner som abstrakte klasser, adgangsmodifikatorer og statiske medlemmer, så du kan skrive ren, modulær og objektorienteret TypeScript-kode.

Lektion 2 af 311 trin

Avancerede klassefunktioner er en gratis TypeScript Academy-lektion på CoddyKit. Dette er lektion 2 af 3. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i TypeScript Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. TypeScript Academy-kurset indeholder 3 lektioner i alt.

Introduktion til avancerede klassefunktioner

TypeScript tilbyder flere avancerede klassefunktioner, som hjælper dig med at skrive modulær, skalerbar og vedligeholdelsesvenlig objektorienteret kode.

I denne lektion lærer du om adgangsmodifikatorer, abstrakte klasser, statiske medlemmer med mere.

Avancerede klassefunktioner — illustration 1

Oversigt over avancerede klassefunktioner

Introduktion til avancerede klassefunktioner

TypeScript tilbyder flere avancerede klassefunktioner, som hjælper dig med at skrive modulær, skalerbar og vedligeholdelsesvenlig objektorienteret kode.

I denne lektion lærer du om adgangsmodifikatorer, abstrakte klasser, statiske medlemmer med mere.

Avancerede klassefunktioner — illustration 2

Adgangsmodifikatorer

TypeScript har tre adgangsmodifikatorer, der styrer synligheden af klassens medlemmer:

  • public: Tilgængelig overalt (standard).
  • private: Kun tilgængelig i klassen.
  • protected: Tilgængelig i klassen og dens underklasser.
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
  }
}

Abstrakte klasser

Abstrakte klasser bruges som skabeloner for andre klasser. De kan ikke oprettes som instanser direkte og kan indeholde abstrakte metoder.

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

Statiske medlemmer

Statiske medlemmer tilhører selve klassen i stedet for en instans af klassen. De tilgås ved hjælp af klassens navn.

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

Gettere og settere

Gettere og settere giver dig mulighed for at styre, hvordan egenskaber tilgås eller ændres i en klasse.

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

Skrivebeskyttede egenskaber

Modifikatoren readonly sikrer, at en egenskab kun kan tildeles under initialiseringen og ikke ændres senere.

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.

Private og beskyttede konstruktører

Klasser kan have private eller beskyttede konstruktører for at styre, hvordan og hvor de oprettes som instanser.

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);

Øvelsesopgave

Opret en klasse med en protected-konstruktør, og udvid den i en underklasse. Tilføj metoder, der giver adgang til de beskyttede egenskaber i underklassen.

Tillykke!

Du har lært avancerede klassefunktioner som adgangsmodifikatorer, abstrakte klasser, statiske medlemmer og meget mere. Øv dig i disse begreber for at skrive ren og effektiv objektorienteret TypeScript-kode!

Avancerede klassefunktioner — illustration 11
Gratis at komme i gang

Lær TypeScript med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
101
Lektioner
352

Ofte stillede spørgsmål

Er lektionen “Avancerede klassefunktioner” gratis?

Ja — hele teksten til “Avancerede klassefunktioner” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af TypeScript Academy-kurset, skal du opgradere til CoddyKit PRO. TypeScript Academy-kurset indeholder 3 lektioner i alt.

Hvad lærer jeg i “Avancerede klassefunktioner”?

Opdag avancerede klassefunktioner som abstrakte klasser, adgangsmodifikatorer og statiske medlemmer, så du kan skrive ren, modulær og objektorienteret TypeScript-kode. Du øver dig i TypeScript Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på TypeScript Academy?

Der kræves ingen tidligere erfaring. TypeScript Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 3.

Hvor lang tid tager lektionen “Avancerede klassefunktioner”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne TypeScript Academy-lektion?

Ja. Alle TypeScript Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Avanceret typeindsnævring
  2. Avancerede klassefunktioner
  3. Betingede typer
← Tilbage til TypeScript Academy