TypeScriptTypy narzędziowe
Exclude<UnionType, ExcludedMembers>
Usuwa z unii typy zgodne z podanym typem.
Przykład
#TypeScript
type Status = 'draft' | 'review' | 'published' | 'archived'
type EditableStatus = Exclude<Status, 'published' | 'archived'>
// type EditableStatus = "draft" | "review"
const statuses: EditableStatus[] = ['draft', 'review']
console.log(statuses.join(' / '))Wynik
draft / review
Definicja i zastosowanie
#Exclude<Union, Excluded> zwraca unię bez członów, które pasują do Excluded. Exclude<"a" | "b" | "c", "a"> daje "b" | "c".
Działa na uniach, a nie na polach obiektów, co odróżnia go od Omit. Pod spodem to typ warunkowy, który dla pasujących członów zwraca never.
Przydaje się, gdy z listy możliwych wartości chcesz odjąć kilka, na przykład z wszystkich statusów wybrać tylko te, które może ustawić użytkownik.
Składnia
#Składnia
type Nowy = Exclude<Unia, UsuwaneTypy>Parametry typu
#UnionType
unia
Unia, z której usuwasz typy.ExcludedMembers
typ
Typy do usunięcia.
Dobre praktyki
#- Do usuwania pól z obiektu służy
Omit, a do usuwania członów uniiExclude. Exclude<T, null | undefined>to to samo, coNonNullable<T>.
Powiązane hasła
#Widzisz błąd albo brakuje przykładu? Napisz do nas.