0Pricing
TypeScript Academy · Lekcja

Rozszerzanie i scalanie interfejsów

Rozszerzaj interfejsy i poznaj scalanie deklaracji.

Rozszerzanie i scalanie interfejsów to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 3 z 4. 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 4 lekcji w sumie.

Wprowadzenie

Interfejsy mogą rozszerzać inne interfejsy, bazując na istniejących kształtach, a TypeScript automatycznie scala wiele deklaracji tego samego interfejsu.

Rozszerzanie interfejsu

Proszę użyć słowa kluczowego `extends`, aby utworzyć nowy interfejs zawierający wszystkie właściwości interfejsu nadrzędnego.
interface Animal { name: string; }
interface Dog extends Animal {
  breed: string;
}
const rex: Dog = { name: 'Rex', breed: 'Labrador' };

Rozszerzanie wielu interfejsów

Interfejs może jednocześnie rozszerzać wiele interfejsów, łącząc wszystkie ich właściwości.
interface Flyable { fly(): void; }
interface Swimmable { swim(): void; }
interface Duck extends Flyable, Swimmable {
  quack(): void;
}

Zastępowanie właściwości podczas rozszerzania

Rozszerzany interfejs może zastąpić właściwość interfejsu nadrzędnego, ale nowy typ musi być przypisywalny do typu nadrzędnego.
interface Base { value: string | number; }
interface Derived extends Base { value: string; } // OK — string is narrower
// interface Bad extends Base { value: boolean; } // Error

Scalanie deklaracji

Gdy zadeklarują Państwo dwa interfejsy o tej samej nazwie, TypeScript scala je w jeden interfejs zawierający wszystkie właściwości.
interface Window { title: string; }
interface Window { location: Location; }
// Merged: Window has both title and location

Rozszerzanie typów bibliotek

Scalanie deklaracji służy do rozszerzania typów firm trzecich. Można na przykład dodać właściwości do interfejsu Request biblioteki Express.
// express.d.ts
declare namespace Express {
  interface Request {
    user?: User;
  }
}

Interfejs rozszerzający alias typu

Interfejs może rozszerzać alias typu, o ile alias reprezentuje typ obiektu.
type Named = { name: string };
interface User extends Named { email: string; }

Zagnieżdżone łańcuchy rozszerzeń

Łańcuchy rozszerzeń mogą mieć wiele poziomów zagłębienia.
interface A { a: number; }
interface B extends A { b: number; }
interface C extends B { c: number; }
const obj: C = { a: 1, b: 2, c: 3 };

extends a implements

`extends` służy do dziedziczenia interfejsu po interfejsie lub klasy po klasie. `implements` służy do tego, aby klasa spełniała kontrakt interfejsu.
interface Serializable { serialize(): string; }
class Model implements Serializable {
  serialize() { return JSON.stringify(this); }
}

Scalanie rozszerza wszystkie użycia

Gdy interfejsy zostają scalone, cały istniejący kod korzystający z tego interfejsu automatycznie otrzymuje nowe właściwości, dlatego działa rozszerzanie bibliotek.

Scalanie a rozszerzanie: kiedy stosować każde z nich

Proszę używać `extends`, aby utworzyć nowy interfejs na podstawie istniejącego. Proszę używać scalania (tej samej nazwy), aby dodać elementy do interfejsu z osobnego pliku, na przykład podczas rozszerzania biblioteki.

Szybki sprawdzian

Która funkcja TypeScriptu pozwala dodawać właściwości do interfejsu z biblioteki firm trzecich?

Podsumowanie

Interfejsy rozszerzają inne interfejsy za pomocą `extends`, łącząc ich kształty. Scalanie deklaracji automatycznie łączy interfejsy o tej samej nazwie. Umożliwia to rozszerzanie bibliotek bez modyfikowania kodu firm trzecich.

Często zadawane pytania

Czy lekcja „Rozszerzanie i scalanie interfejsów” jest bezpłatna?

Tak — pełny tekst „Rozszerzanie i scalanie interfejsów” 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 4 lekcji w sumie.

Co nauczysz się w „Rozszerzanie i scalanie interfejsów”?

Rozszerzaj interfejsy i poznaj scalanie deklaracji. Ć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 3 z 4.

Ile czasu zajmuje lekcja „Rozszerzanie i scalanie interfejsów”?

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. Definiowanie kształtów obiektów za pomocą interfejsów
  2. Aliasy typów dla złożonych typów
  3. Rozszerzanie i scalanie interfejsów
  4. Interface czy type: kiedy używać którego
← Powrót do TypeScript Academy