Exclude<UnionType, ExcludedMembers>

Retire d’une union les types compatibles avec un type donné.

Sur cette page

Exemple

#
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(' / '))
Résultat
draft / review

Définition et utilisation

#

Exclude<Union, Excluded> renvoie une union sans les membres qui correspondent à Excluded. Exclude<"a" | "b" | "c", "a"> donne "b" | "c".

Il agit sur des unions, pas sur des champs d’objet, ce qui le distingue de Omit. En interne, c’est un type conditionnel qui renvoie never pour les membres correspondants.

C’est utile quand vous voulez soustraire quelques valeurs d’une liste de valeurs possibles, par exemple choisir parmi tous les statuts seulement ceux qu’un utilisateur peut définir.

Syntaxe

#
Syntaxe
type New = Exclude<Union, ExcludedTypes>

Paramètres de type

#
  • UnionType

    union

    L’union dont vous retirez des types.
  • ExcludedMembers

    type

    Les types à retirer.

Bonnes pratiques

#
  • Omit retire des champs d’un objet, et Exclude retire des membres d’une union.
  • Exclude<T, null | undefined> équivaut à NonNullable<T>.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.