TypeScript Academy · Lektion

Avancerade klassfunktioner

Upptäck avancerade klassfunktioner som abstrakta klasser, åtkomstmodifierare och statiska medlemmar för att skriva ren, modulär och objektorienterad TypeScript-kod.

Lektion 2 av 311 steg

Avancerade klassfunktioner är en gratis lektion i TypeScript Academy på CoddyKit. Detta är lektion 2 av 3. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för TypeScript Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i TypeScript Academy innehåller totalt 3 lektioner.

Introduktion till avancerade klassfunktioner

TypeScript erbjuder flera avancerade klassfunktioner som hjälper Er att skriva modulär, skalbar och underhållbar objektorienterad kod.

I den här lektionen lär Ni Er om åtkomstmodifierare, abstrakta klasser, statiska medlemmar med mera.

Avancerade klassfunktioner — illustration 1

Översikt över avancerade klassfunktioner

Introduktion till avancerade klassfunktioner

TypeScript erbjuder flera avancerade klassfunktioner som hjälper Er att skriva modulär, skalbar och underhållbar objektorienterad kod.

I den här lektionen lär Ni Er om åtkomstmodifierare, abstrakta klasser, statiska medlemmar med mera.

Avancerade klassfunktioner — illustration 2

Åtkomstmodifierare

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

  • public: Tillgänglig överallt (standard).
  • private: Tillgänglig endast i klassen.
  • protected: Tillgänglig i klassen och dess 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
  }
}

Abstrakta klasser

Abstrakta klasser används som mallar för andra klasser. De kan inte instansieras direkt och kan innehålla abstrakta 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

Statiska medlemmar

Statiska medlemmar tillhör själva klassen i stället för någon av klassens instanser. De nås med hjälp av klassnamnet.

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

Getters och setters

Getters och setters låter Er styra hur egenskaper nås eller ändras i en klass.

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

Skrivskyddade egenskaper

Modifieraren readonly säkerställer att en egenskap endast kan tilldelas under initieringen och inte ändras senare.

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.

Privata och skyddade konstruktorer

Klasser kan ha privata eller skyddade konstruktorer för att styra hur och var de instansieras.

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

Övningsuppgift

Skapa en klass med en protected-konstruktor och utöka den i en subklass. Lägg till metoder för att komma åt de skyddade egenskaperna i subklassen.

Grattis!

Du har lärt dig avancerade klassfunktioner som åtkomstmodifierare, abstrakta klasser, statiska medlemmar med mera. Öva på dessa koncept för att skriva ren och effektiv objektorienterad TypeScript-kod!

Avancerade klassfunktioner — illustration 11
Gratis att börja

Lär dig TypeScript med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
101
Lektioner
352

Vanliga frågor

Är lektionen ”Avancerade klassfunktioner” gratis?

Ja – hela texten till ”Avancerade klassfunktioner” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i TypeScript Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i TypeScript Academy innehåller totalt 3 lektioner.

Vad lär jag mig i ”Avancerade klassfunktioner”?

Upptäck avancerade klassfunktioner som abstrakta klasser, åtkomstmodifierare och statiska medlemmar för att skriva ren, modulär och objektorienterad TypeScript-kod. Ni övar på TypeScript Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig TypeScript Academy?

Du behöver inga förkunskaper. Utbildningen i TypeScript Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 3.

Hur lång tid tar lektionen ”Avancerade klassfunktioner”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här TypeScript Academy-lektionen?

Ja. Varje TypeScript Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Avancerad typförfining
  2. Avancerade klassfunktioner
  3. Villkorstyper
← Tillbaka till TypeScript Academy