0Pricing
TypeScript Academy · Lekcja

Partial i Required: przełączanie opcjonalności

Ustawiaj wszystkie właściwości jako opcjonalne albo wymagane jednocześnie.

Partial i Required: przełączanie opcjonalności 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

Partial sprawia, że wszystkie właściwości są opcjonalne. Required sprawia, że wszystkie właściwości są wymagane. Są to najczęściej używane typy pomocnicze do elastycznego przetwarzania danych.

Partial<T>

Partial sprawia, że każda właściwość typu T jest opcjonalna. Jest przydatny podczas operacji aktualizacji lub patchowania, gdy nie ma wszystkich pól.
interface User { id: number; name: string; email: string; }
type PartialUser = Partial<User>;
// { id?: number; name?: string; email?: string; }

Partial w funkcjach aktualizujących

Użyj Partial podczas implementowania funkcji aktualizujących lub scalających, które przyjmują tylko zmienione pola.
function updateUser(id: number, changes: Partial<User>): User {
  const existing = findUser(id)!;
  return { ...existing, ...changes };
}

Required<T>

Required usuwa wszystkie modyfikatory opcjonalności, dzięki czemu każda właściwość staje się wymagana.
type RequiredUser = Required<User>;
// All properties are now required — including those that were optional

Required do walidacji konfiguracji

Użyj Required po scaleniu wartości domyślnych, aby upewnić się, że wszystkie wartości konfiguracji są obecne.
interface Config { host?: string; port?: number; }
const defaults: Required<Config> = { host: 'localhost', port: 3000 };
function createConfig(opts: Config): Required<Config> {
  return { ...defaults, ...opts };
}

Implementacja Partial

Partial używa typu mapowanego z modyfikatorem +?.
type Partial<T> = { [K in keyof T]?: T[K] };
// Equivalent to: { [K in keyof T]+?: T[K] }

Implementacja Required

Required używa typu mapowanego z modyfikatorem -?.
type Required<T> = { [K in keyof T]-?: T[K] };

Deep Partial

Wbudowany Partial działa płytko. W przypadku zagnieżdżonych obiektów potrzebujesz rekurencyjnego typu DeepPartial.
type DeepPartial<T> = {
  [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K]
};

Łączenie Partial i Required

Użyj przecięcia typów, aby wymagać niektórych pól, zachowując opcjonalność pozostałych.
// id required, everything else optional
type UpsertUser = Required<Pick<User, 'id'>> & Partial<Omit<User, 'id'>>;

Partial a opcjonalne właściwości w interfejsie

Zadeklarowanie wszystkich właściwości interfejsu jako opcjonalnych daje ten sam efekt co zastosowanie Partial, ale tylko dla tego konkretnego typu. Partial można ponownie wykorzystać z dowolnym typem.

Wnioskowanie typu z Partial

TypeScript poprawnie zawęża właściwości Partial — dostęp do nich może zwrócić T[K] | undefined.
function show(u: Partial<User>) {
  if (u.name !== undefined) {
    console.log(u.name.toUpperCase()); // safe
  }
}

Szybkie sprawdzenie

Który typ pomocniczy sprawia, że WSZYSTKIE właściwości interfejsu stają się wymagane, w tym te, które wcześniej były opcjonalne?

Podsumowanie

Partial sprawia, że wszystkie właściwości są opcjonalne (co jest przydatne w patchach i aktualizacjach). Required sprawia, że wszystkie właściwości są wymagane (co jest przydatne do walidacji po scaleniu). Oba typy działają płytko — w przypadku typów zagnieżdżonych użyj wersji rekurencyjnych.

Często zadawane pytania

Czy lekcja „Partial i Required: przełączanie opcjonalności” jest bezpłatna?

Tak — pełny tekst „Partial i Required: przełączanie opcjonalności” 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 „Partial i Required: przełączanie opcjonalności”?

Ustawiaj wszystkie właściwości jako opcjonalne albo wymagane jednocześnie. Ć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 „Partial i Required: przełączanie opcjonalności”?

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. Partial i Required: przełączanie opcjonalności
  2. Pick i Omit: wybieranie właściwości
  3. Record: mapowanie kluczy na typy wartości
  4. Readonly, Exclude, Extract i NonNullable
← Powrót do TypeScript Academy