TypeScriptTypy narzędziowe
Extract<Type, Union>
Zostawia w unii tylko typy zgodne z podanym typem.
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
Extractto 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.