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.

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.

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.54Skł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.5Gettery 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); // BobWł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!

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
- Zaawansowane zawężanie typów
- Zaawansowane funkcje klas
- Typy warunkowe