Funkcje generyczne: parametry typów
Dodawaj parametry typów do funkcji, aby można było ich wielokrotnie używać.
Funkcje generyczne: parametry typów 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
Problem rozwiązywany przez typy generyczne
// Without generics — loses type info
function first(arr: any[]): any { return arr[0]; }
// With generics — type-safe
function first<T>(arr: T[]): T { return arr[0]; }Składnia parametrów typu
function identity<T>(value: T): T {
return value;
}
const n = identity(42); // T is number
const s = identity('hello'); // T is stringWnioskowanie typu dla funkcji generycznych
function wrap<T>(val: T): T[] { return [val]; }
const nums = wrap(42); // T inferred as number -> number[]
const strs = wrap('hi'); // T inferred as string -> string[]Wiele parametrów typu
function pair<A, B>(a: A, b: B): [A, B] {
return [a, b];
}
const p = pair(1, 'hello'); // [number, string]Generyczne funkcje tablicowe
function filterNull<T>(arr: (T | null)[]): T[] {
return arr.filter((x): x is T => x !== null);
}Jawne argumenty typu
function create<T>(): T | null { return null; }
const user = create<User>(); // T cannot be inferred — must be explicitTyp generyczny a any
function echo<T>(val: T): T { return val; }
const n: number = echo(42); // OK
// const s: string = echo(42); // Error — T is numberGeneryczne funkcje strzałkowe
const identity = <T>(val: T): T => val;
// In .tsx files:
const identity2 = <T,>(val: T): T => val;Zwracanie innego typu
function mapArray<T, U>(arr: T[], fn: (item: T) => U): U[] {
return arr.map(fn);
}
const lengths = mapArray(['hello', 'world'], s => s.length);
// lengths: number[]Parametry generyczne z wartościami domyślnymi
function createList<T = string>(): T[] { return []; }
const list = createList(); // T defaults to stringSzybkie sprawdzenie
Podsumowanie
Często zadawane pytania
Czy lekcja „Funkcje generyczne: parametry typów” jest bezpłatna?
Tak — pełny tekst „Funkcje generyczne: parametry 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 „Funkcje generyczne: parametry typów”?
Dodawaj parametry typów do funkcji, aby można było ich wielokrotnie używać. Ć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 „Funkcje generyczne: parametry 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
- Funkcje generyczne: parametry typów
- Generyczne interfejsy i aliasy typów
- Ograniczenia generyczne za pomocą extends
- Domyślne parametry typów