Extract<Type, Union>

Zostawia w unii tylko typy zgodne z podanym typem.

Na tej stronie

Przykład

#
TypeScript
type Action =
  | { type: 'add'; title: string }
  | { type: 'remove'; id: number }
  | { type: 'clear' }

type AddAction = Extract<Action, { type: 'add' }>
// type AddAction = { type: 'add'; title: string }

const action: AddAction = { type: 'add', title: 'Nowe zadanie' }
console.log(action.title)
Wynik
Nowe zadanie

Definicja i zastosowanie

#

Extract<Type, Union> robi odwrotność Exclude: zostawia tylko te człony unii, które pasują do drugiego argumentu.

Szczególnie przydaje się przy uniach rozróżnialnych. Extract<Action, { type: "add" }> wyciąga z unii akcji dokładnie wariant z type: "add", razem ze wszystkimi jego polami.

Tak samo jak Exclude, jest zbudowany na typie warunkowym, który dla niepasujących członów zwraca never.

Składnia

#
Składnia
type Nowy = Extract<Unia, Warunek>

Parametry typu

#
  • Type

    unia

    Unia, z której wybierasz typy.
  • Union

    typ

    Typ, do którego mają pasować zostawione człony.

Dobre praktyki

#
  • Z uniami rozróżnialnymi Extract to najwygodniejszy sposób, żeby nazwać pojedynczy wariant.
  • Jeśli wynik to never, żaden człon unii nie pasuje do warunku. Sprawdź pisownię literałów.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.