TypeScriptTypes utilitaires
Exclude<UnionType, ExcludedMembers>
Retire d’une union les types compatibles avec un type donné.
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
#Omitretire des champs d’un objet, etExcluderetire des membres d’une union.Exclude<T, null | undefined>équivaut àNonNullable<T>.
Entrées associées
#- Extract<Type, Union>Garde dans une union uniquement les types compatibles avec un type donné.
- NonNullable<Type>Retire null et undefined d’un type.
- Omit<Type, Keys>Crée un type sans les propriétés sélectionnées d’un autre type.
- Types conditionnelsDes types choisis selon une condition : T extends U ? X : Y.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.