0Pricing
TypeScript Academy · Lekcja

Zaawansowane funkcje klas

Poznaj zaawansowane funkcje klas, takie jak klasy abstrakcyjne, modyfikatory dostępu i składowe statyczne, aby pisać czysty, modułowy i obiektowy kod TypeScript

Zaawansowane funkcje klas to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 2 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej TypeScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs TypeScript Academy zawiera 3 lekcji w sumie.

Wprowadzenie do zaawansowanych funkcji klas

Wprowadzenie do zaawansowanych funkcji klas

TypeScript oferuje kilka zaawansowanych funkcji klas, które pomagają pisać modularny, skalowalny i łatwy w utrzymaniu kod obiektowy.

W tej lekcji poznają Państwo modyfikatory dostępu, klasy abstrakcyjne, składowe statyczne i nie tylko.

Zaawansowane funkcje klas — ilustracja 1

Przegląd zaawansowanych funkcji klas

Wprowadzenie do zaawansowanych funkcji klas

TypeScript oferuje kilka zaawansowanych funkcji klas, które pomagają pisać modularny, skalowalny i łatwy w utrzymaniu kod obiektowy.

W tej lekcji poznają Państwo modyfikatory dostępu, klasy abstrakcyjne, składowe statyczne i nie tylko.

Zaawansowane funkcje klas — ilustracja 2

Modyfikatory dostępu

Modyfikatory dostępu

TypeScript udostępnia trzy modyfikatory dostępu do kontrolowania widoczności składowych klasy:

  • public: Dostępny w dowolnym miejscu (domyślnie).
  • private: Dostępny tylko wewnątrz klasy.
  • protected: Dostępny wewnątrz klasy i jej podklas.
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
  }
}

Klasy abstrakcyjne

Klasy abstrakcyjne

Klasy abstrakcyjne służą jako szablony dla innych klas. Nie można tworzyć ich instancji bezpośrednio, a ponadto mogą zawierać metody abstrakcyjne.

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

Składowe statyczne

Składowe statyczne

Składowe statyczne należą do samej klasy, a nie do żadnej jej instancji. Uzyskuje się do nich dostęp za pomocą nazwy klasy.

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

Gettery i settery

Gettery i settery

Gettery i settery umożliwiają kontrolowanie sposobu uzyskiwania dostępu do właściwości klasy oraz ich modyfikowania.

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

Właściwości tylko do odczytu

Właściwości tylko do odczytu

Modyfikator readonly gwarantuje, że właściwość można ustawić tylko podczas inicjalizacji i nie można jej później modyfikować.

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.

Prywatne i chronione konstruktory

Prywatne i chronione konstruktory

Klasy mogą mieć prywatne lub chronione konstruktory, aby kontrolować sposób i miejsce tworzenia ich instancji.

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

Zadanie praktyczne

Zadanie praktyczne

Utwórz klasę z konstruktorem protected, a następnie rozszerz ją w podklasie. Dodaj metody umożliwiające dostęp do chronionych właściwości w podklasie.

Gratulacje!

Gratulacje!

Nauczyli się Państwo korzystać z zaawansowanych funkcji klas, takich jak modyfikatory dostępu, klasy abstrakcyjne, elementy statyczne i wiele innych. Proszę przećwiczyć te zagadnienia, aby pisać czytelny i wydajny obiektowy kod TypeScript!

Zaawansowane funkcje klas — ilustracja 11

Często zadawane pytania

Czy lekcja „Zaawansowane funkcje klas” jest bezpłatna?

Tak — pełny tekst „Zaawansowane funkcje klas” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu TypeScript Academy, przejdź na CoddyKit PRO. Kurs TypeScript Academy zawiera 3 lekcji w sumie.

Co nauczysz się w „Zaawansowane funkcje klas”?

Poznaj zaawansowane funkcje klas, takie jak klasy abstrakcyjne, modyfikatory dostępu i składowe statyczne, aby pisać czysty, modułowy i obiektowy kod TypeScript Ćwiczysz TypeScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć TypeScript Academy?

Nie wymagamy żadnego doświadczenia. TypeScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 3.

Ile czasu zajmuje lekcja „Zaawansowane funkcje klas”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji TypeScript Academy?

Tak. Każda lekcja TypeScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Zaawansowane zawężanie typów
  2. Zaawansowane funkcje klas
  3. Typy warunkowe
← Powrót do TypeScript Academy