0Pricing
TypeScript Academy · Lekcja

Generyczne interfejsy i aliasy typów

Stosuj generyki w interfejsach i niestandardowych typach.

Generyczne interfejsy i aliasy typów to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 2 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

Typy generyczne nie ograniczają się do funkcji. Interfejsy i aliasy typów również przyjmują parametry typu, dzięki czemu można ich używać ponownie dla wielu typów.

Składnia generycznego interfejsu

Dodaj `` za nazwą interfejsu, aby uczynić go generycznym. Użyj T w typach właściwości i sygnaturach metod.
interface Box<T> {
  value: T;
  unwrap(): T;
}
const box: Box<number> = { value: 42, unwrap() { return this.value; } };

Generyczny alias typu

Alaisy typów używają tej samej składni ``.
type Maybe<T> = T | null | undefined;
type Pair<A, B> = { first: A; second: B };
const p: Pair<string, number> = { first: 'Alice', second: 30 };

Generyczny interfejs repozytorium

Klasyczny przypadek użycia: generyczny interfejs repozytorium działający z dowolnym typem encji.
interface Repository<T> {
  findById(id: number): T | null;
  findAll(): T[];
  save(item: T): void;
  delete(id: number): void;
}

Implementowanie generycznego interfejsu

Podaj argument typu podczas implementowania generycznego interfejsu.
class UserRepo implements Repository<User> {
  findById(id: number): User | null { return null; }
  findAll(): User[] { return []; }
  save(user: User): void {}
  delete(id: number): void {}
}

Rozszerzanie generycznych interfejsów

Generyczne interfejsy mogą rozszerzać inne generyczne interfejsy.
interface Named<T> { name: T; }
interface NamedAndAged<T> extends Named<T> { age: number; }

Generyczny typ odpowiedzi

Generyczny typ odpowiedzi API, który opakowuje dowolny ładunek danych.
type ApiResponse<T> = {
  status: 'success' | 'error';
  data: T;
  timestamp: number;
};
const res: ApiResponse<User[]> = { status: 'success', data: [], timestamp: Date.now() };

Wiele parametrów typu w interfejsach

Interfejsy obsługują wiele parametrów typu.
interface KeyValue<K, V> {
  key: K;
  value: V;
}
const kv: KeyValue<string, number> = { key: 'age', value: 30 };

Generyczna metoda w niegenerycznym interfejsie

Interfejs może zawierać generyczne metody, nawet jeśli cały interfejs nie jest generyczny.
interface Transformer {
  transform<T, U>(input: T, fn: (val: T) => U): U;
}

Rekurencyjne typy generyczne

Typy generyczne mogą odwoływać się do samych siebie w strukturach drzewiastych lub listach wiązanych.
interface TreeNode<T> {
  value: T;
  children: TreeNode<T>[];
}

Alias typu a interfejs w typach generycznych

Oba rozwiązania równie dobrze obsługują typy generyczne. W przypadku kontraktów implementowanych przez klasy preferuj interface. W przypadku typów generycznych zawierających unię, takich jak Maybe, preferuj type.

Szybkie sprawdzenie

Co należy podać podczas implementowania `interface Repository`?

Podsumowanie

Generyczne interfejsy i aliasy typów używają , aby działać z dowolnym typem. Umożliwiają tworzenie wielokrotnego użytku kontraktów dla repozytoriów, opakowań odpowiedzi i rekurencyjnych struktur danych. Należy je implementować, podając konkretny argument typu.

Często zadawane pytania

Czy lekcja „Generyczne interfejsy i aliasy typów” jest bezpłatna?

Tak — pełny tekst „Generyczne interfejsy i aliasy typó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 „Generyczne interfejsy i aliasy typów”?

Stosuj generyki w interfejsach i niestandardowych typach. Ć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 4.

Ile czasu zajmuje lekcja „Generyczne interfejsy i aliasy typó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. Funkcje generyczne: parametry typów
  2. Generyczne interfejsy i aliasy typów
  3. Ograniczenia generyczne za pomocą extends
  4. Domyślne parametry typów
← Powrót do TypeScript Academy