0Pricing
TypeScript Academy · Lekcja

Typy mapowane

Dowiedz się, jak przekształcać istniejące typy w nowe za pomocą typów mapowanych, zyskując elastyczność w obsłudze dynamicznych struktur danych

Typy mapowane 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 typów mapowanych

Wprowadzenie do typów mapowanych

Typy mapowane umożliwiają przekształcanie istniejących typów w nowe przez zastosowanie operacji do każdej właściwości typu.

Są przydatne do tworzenia elastycznych struktur typów, które można wielokrotnie wykorzystywać w TypeScript.

Typy mapowane — ilustracja 1

Czym są typy mapowane?

Czym są typy mapowane?

Typy mapowane wykorzystują składnię taką jak { [P in keyof T]: T[P] }, aby iterować po właściwościach typu T.

Podstawowy przykład typów mapowanych

Podstawowy przykład typów mapowanych

Oto prosty przykład użycia typu mapowanego do utworzenia wersji typu przeznaczonej tylko do odczytu:

type User = {
  name: string;
  age: number;
};

type ReadonlyUser = {
  readonly [P in keyof User]: User[P];
};

Korzystanie z wbudowanych typów mapowanych

Korzystanie z wbudowanych typów mapowanych

TypeScript udostępnia kilka wbudowanych typów mapowanych, takich jak:

  • Readonly<T>: sprawia, że wszystkie właściwości typu T są tylko do odczytu.
  • Partial<T>: sprawia, że wszystkie właściwości typu T są opcjonalne.
  • Required<T>: sprawia, że wszystkie właściwości typu T są wymagane.
type User = {
  name: string;
  age: number;
};

// Example of Partial
const user: Partial<User> = {
  name: 'John',
};

Mapowanie typów unii

Mapowanie typów unii

Typów mapowanych można również używać z typami unii, aby tworzyć nowe, połączone typy:

type Status = 'active' | 'inactive';

type StatusFlags = {
  [K in Status]: boolean;
};

const flags: StatusFlags = {
  active: true,
  inactive: false,
};

Warunkowe typy mapowane

Warunkowe typy mapowane

Typów warunkowych można używać razem z typami mapowanymi do tworzenia bardziej złożonych przekształceń typów.

type User = {
  name: string;
  age?: number;
};

type NonOptional<T> = {
  [K in keyof T]-?: T[K];
};

type RequiredUser = NonOptional<User>;

Zaawansowany przykład: wykluczanie właściwości

Zaawansowany przykład: wykluczanie właściwości

Oto sposób tworzenia typu mapowanego wykluczającego określone właściwości:

type User = {
  id: number;
  name: string;
  password: string;
};

type PublicUser = {
  [K in keyof User as Exclude<K, 'password'>]: User[K];
};

Zadanie praktyczne

Zadanie praktyczne

Należy utworzyć typ mapowany, który doda modyfikator readonly do wszystkich właściwości typu Product. Następnie należy go przetestować, deklarując zmienną nowego typu.

Powtórzenie typów mapowanych

Gratulacje!

Nauczyli się Państwo używać typów mapowanych do dynamicznego przekształcania istniejących typów w nowe. Proszę ćwiczyć te techniki, aby jeszcze zwiększyć możliwości kodu TypeScript!

Typy mapowane — ilustracja 10

Często zadawane pytania

Czy lekcja „Typy mapowane” jest bezpłatna?

Tak — pełny tekst „Typy mapowane” 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 „Typy mapowane”?

Dowiedz się, jak przekształcać istniejące typy w nowe za pomocą typów mapowanych, zyskując elastyczność w obsłudze dynamicznych struktur danych Ć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 „Typy mapowane”?

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. Typy Keyof i lookup
  2. Typy mapowane
  3. Typy przecięcia i sumy
← Powrót do TypeScript Academy