0Pricing
TypeScript Academy · Lekcja

Typy unii: A lub B

Użyj |, aby dopuścić wiele możliwych typów.

Typy unii: A lub B 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

Typy unii pozwalają, aby wartość należała do jednego z kilku typów. Zapisuje się je za pomocą operatora `|` i są podstawą modelowania danych ze świata rzeczywistego.

Podstawowa składnia unii

Połącz dwa lub więcej typów za pomocą `|`. Zmienna o typie unii może przechowywać dowolny jeden z wymienionych typów.
let id: string | number;
id = 'abc123'; // OK
id = 42;       // OK
// id = true;  // Error

Unia w parametrach funkcji

Za pomocą parametru będącego typem unii można przyjmować w funkcji dane wejściowe różnych typów.
function format(val: string | number): string {
  return typeof val === 'string' ? val.toUpperCase() : val.toFixed(2);
}

Wymagane zawężanie elementów unii

Bez zawężania można wywoływać tylko metody wspólne dla wszystkich elementów unii. Aby użyć metod właściwych dla konkretnego typu, należy najpierw zawęzić typ.
function process(val: string | number) {
  // val.toFixed(2); // Error — not on string
  if (typeof val === 'number') {
    val.toFixed(2); // OK
  }
}

Unia z typami literałowymi

Unie wartości literałowych tworzą podobny do enuma zbiór dozwolonych wartości tekstowych lub liczbowych.
type Direction = 'north' | 'south' | 'east' | 'west';
type StatusCode = 200 | 201 | 400 | 404 | 500;

Unia dla typów dopuszczających wartości null

Najczęściej spotykaną unią jest `T | null` lub `T | undefined`, służąca do reprezentowania opcjonalnych wartości, gdy włączona jest opcja strictNullChecks.
function getUser(id: number): User | null {
  return db.find(u => u.id === id) ?? null;
}

Unia typów obiektowych

Typy unii mogą łączyć typy obiektowe. Bez zawężania TypeScript zezwala tylko na dostęp do właściwości wspólnych dla wszystkich elementów unii.
type Cat = { kind: 'cat'; meow(): void };
type Dog = { kind: 'dog'; bark(): void };
type Pet = Cat | Dog;
function speak(pet: Pet) {
  if (pet.kind === 'cat') pet.meow();
  else pet.bark();
}

Trzy lub więcej typów w unii

Unie mogą zawierać tyle typów, ile potrzeba.
type Input = string | number | boolean | null;

Unia w typach zwracanych

Funkcje mogą zwracać różne typy w zależności od swojej logiki. Można to wyrazić za pomocą unii typu zwracanego.
function divide(a: number, b: number): number | null {
  if (b === 0) return null;
  return a / b;
}

Unie dyskryminowane

Dodaj wspólną właściwość literałową, czyli dyskryminant, do elementów unii. TypeScript używa jej do automatycznego zawężania typu.
type Square = { kind: 'square'; side: number };
type Circle = { kind: 'circle'; radius: number };
type Shape = Square | Circle;

Wspólne właściwości bez zawężania

Jeśli wszystkie elementy unii mają daną właściwość, można uzyskać do niej dostęp bez zawężania.
type A = { name: string; x: number };
type B = { name: string; y: number };
type AB = A | B;
function getName(obj: AB): string {
  return obj.name; // OK — name is on both
}

Szybkie sprawdzenie

Jaka składnia tworzy typ unii, który może być tekstem lub liczbą?

Podsumowanie

Typy unii (`|`) pozwalają przechowywać wartości wielu typów. Przed użyciem operacji właściwych dla konkretnego typu należy zawęzić unię. Unie literałowe ograniczają wartości do skończonego zbioru. Unie dyskryminowane dodają wspólny znacznik ułatwiający zawężanie.

Często zadawane pytania

Czy lekcja „Typy unii: A lub B” jest bezpłatna?

Tak — pełny tekst „Typy unii: A lub B” 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 unii: A lub B”?

Użyj |, aby dopuścić wiele możliwych typów. Ć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 unii: A lub B”?

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 unii: A lub B
  2. Typy przecięć: A i B
  3. Rozróżniane unie na potrzeby bezpiecznego dopasowywania wzorców
  4. Praktyczne wzorce z uniami i przecięciami
← Powrót do TypeScript Academy