Skip to content

matchWithNumber

matchWithNumber() effectue un pattern matching exhaustif sur la valeur d’une primitive Clean number. Chaque valeur possible doit avoir une branche de traitement.

Une primitive Clean étant un objet wrappé, elle ne peut pas servir directement de clé au matcher. Les clés sont donc les valeurs number brutes. Lorsqu’une clé correspond, son callback reçoit la primitive Clean originale, affinée sur cette valeur. Ses informations Primitive, ConstrainedType ou NewType sont ainsi conservées.

Exemple interactif

Syntaxe

Signature classique

typescript
function matchWithNumber<Input extends Primitive<number>, Matcher>(
  input: Input,
  matcher: Matcher
): ReturnType<Matcher[keyof Matcher]>

Signature currifiée

typescript
function matchWithNumber<Input extends Primitive<number>, Matcher>(
  matcher: Matcher
): (input: Input) => ReturnType<Matcher[keyof Matcher]>

Paramètres

  • input : une primitive Clean contenant une valeur number, y compris une valeur contrainte ou un new type.
  • matcher : un objet exhaustif indexé par les valeurs number brutes possibles. Une Primitive<number> large nécessite un Record<number, handler> indexé.

Chaque clé doit avoir exactement un handler. Une clé manquante ou étrangère à l’union est refusée par TypeScript. Le handler sélectionné reçoit l’objet Clean original affiné avec Primitive<ValeurCorrespondante>.

Valeur de retour

Le résultat du handler sélectionné, typé comme l’union des retours de tous les handlers.

Voir aussi

  • matchWithString - Équivalent pour les primitives string.
  • equal - Compare les valeurs de primitives wrappées.

Diffusé sous licence MIT.