Typy generyczne
Poznaj sposób tworzenia wielokrotnego użytku komponentów za pomocą typów generycznych
Typy generyczne to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 1 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 do typów generycznych
Typy generyczne
Witamy na kolejnej lekcji! W tej lekcji dowie się Pan/Pani o typach generycznych — zaawansowanej funkcji TypeScript, która pozwala tworzyć komponenty wielokrotnego użytku i bezpieczne typowo. Zaczynajmy!

Czym są typy generyczne?
Czym są typy generyczne?
Typy generyczne pozwalają pisać kod wielokrotnego użytku, który działa z dowolnym typem. Działają jako symbole zastępcze typów, które można określić podczas ich używania.
Przykład: funkcja generyczna:
Zadanie: Napisz funkcję generyczną, która przyjmuje argument i zwraca go bez zmian.
function identity<T>(value: T): T {
return value;
}
console.log(identity<string>("Hello"));
// Output: Hello
console.log(identity<number>(42));
// Output: 42
Dlaczego używać typów generycznych?
Dlaczego używać typów generycznych?
Typy generyczne pomagają:
- Pisać kod wielokrotnego użytku: Funkcje i klasy mogą działać z różnymi typami.
- Zapewniać bezpieczeństwo typów: Można wymuszać określone typy bez utraty elastyczności.
- Ograniczać powtórzenia: Można uniknąć pisania osobnych wersji tej samej funkcji lub klasy dla różnych typów.
Wskazówka: Korzystaj z typów generycznych, aby pisać bardziej elastyczny i łatwiejszy w utrzymaniu kod.
Funkcje generyczne
Funkcje generyczne
Typów generycznych można używać do tworzenia elastycznych funkcji. Przykład:
Zadanie: Napisz funkcję generyczną, która scala dwa obiekty i zwraca wynik.
function merge<T, U>(obj1: T, obj2: U): T & U {
return { ...obj1, ...obj2 };
}
let merged = merge({ name: "Alice" }, { age: 25 });
console.log(merged);
// Output: { name: "Alice", age: 25 }
Klasy generyczne
Klasy generyczne
Typów generycznych można używać w klasach, aby były wielokrotnego użytku dla różnych typów. Przykład:
class Box<T> {
private contents: T;
constructor(contents: T) {
this.contents = contents;
}
getContents(): T {
return this.contents;
}
}
let stringBox = new Box<string>("Hello");
console.log(stringBox.getContents());
// Output: Hello
let numberBox = new Box<number>(42);
console.log(numberBox.getContents());
// Output: 42
Interfejsy generyczne
Interfejsy generyczne
Interfejsy również mogą używać typów generycznych, aby wymuszać strukturę dla różnych typów. Przykład:
Zadanie: Zdefiniuj generyczny interfejs i utwórz obiekt, który go implementuje.
interface Pair<T, U> {
first: T;
second: U;
}
let coordinates: Pair<number, number> = { first: 10, second: 20 };
console.log(coordinates);
// Output: { first: 10, second: 20 }
Ograniczenia typów generycznych
Ograniczenia typów generycznych
Do typów generycznych można dodawać ograniczenia, aby zapewnić, że będą działać tylko z określonymi typami. Przykład:
function printLength<T extends { length: number }>(item: T): void {
console.log(`Length: ${item.length}`);
}
printLength("Hello");
// Output: Length: 5
printLength([1, 2, 3]);
// Output: Length: 3
// printLength(42);
// Error: Argument of type 'number' is not assignable to parameter of type '{ length: number }'.
Domyślne typy generyczne
Domyślne typy generyczne
Można określić domyślne typy dla typów generycznych, jeśli nie podano typu. Przykład:
Zadanie: Utwórz funkcję generyczną z typem domyślnym i przetestuj ją z różnymi typami.
function wrap<T = string>(value: T): T[] {
return [value];
}
console.log(wrap("Hello")); // Output: ["Hello"]
console.log(wrap(42)); // Output: [42]
Świetna robota!
Świetna robota!
Gratulacje! Nauczył(a) się Pan/Pani, jak używać typów generycznych w TypeScript do tworzenia wielokrotnego użytku i bezpiecznych typowo funkcji, klas oraz interfejsów. Typy generyczne są potężnym narzędziem do pisania elastycznego i skalowalnego kodu. W następnej lekcji pozna Pan/Pani zaawansowane typy, takie jak typy mapowane i warunkowe. Kontynuujmy programowanie!

Często zadawane pytania
Czy lekcja „Typy generyczne” jest bezpłatna?
Tak — pełny tekst „Typy generyczne” 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 „Typy generyczne”?
Poznaj sposób tworzenia wielokrotnego użytku komponentów za pomocą typów generycznych Ć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 1 z 4.
Ile czasu zajmuje lekcja „Typy generyczne”?
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
- Typy generyczne
- Aliasy typów i interfejsy
- Typy narzędziowe
- Strażnicy typów