Exclude<UnionType, ExcludedMembers>

Usuwa z unii typy zgodne z podanym typem.

Na tej stronie

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 unii Exclude.
  • Exclude<T, null | undefined> to to samo, co NonNullable<T>.

Powiązane hasła

#

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