Extract<Type, Union>

Garde dans une union uniquement les types compatibles avec un type donné.

Sur cette page

Exemple

#
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: 'Nouvelle tâche' }
console.log(action.title)
Résultat
Nouvelle tâche

Définition et utilisation

#

Extract<Type, Union> fait l’inverse d’Exclude : il ne garde que les membres de l’union qui correspondent au second argument.

Il est particulièrement utile avec les unions discriminées. Extract<Action, { type: "add" }> extrait de l’union d’actions exactement la variante avec type: "add", avec tous ses champs.

Tout comme Exclude, il est construit sur un type conditionnel qui renvoie never pour les membres qui ne correspondent pas.

Syntaxe

#
Syntaxe
type New = Extract<Union, Condition>

Paramètres de type

#
  • Type

    union

    L’union dans laquelle vous sélectionnez des types.
  • Union

    type

    Le type auquel les membres conservés doivent correspondre.

Bonnes pratiques

#
  • Avec les unions discriminées, Extract est la façon la plus pratique de nommer une seule variante.
  • Si le résultat est never, aucun membre de l’union ne correspond à la condition. Vérifiez l’orthographe des littéraux.

Entrées associées

#

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