matchWithString
matchWithString() effectue un pattern matching exhaustif sur la valeur d’une primitive Clean string. 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 string 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
function matchWithString<Input extends Primitive<string>, Matcher>(
input: Input,
matcher: Matcher
): ReturnType<Matcher[keyof Matcher]>Signature currifiée
function matchWithString<Input extends Primitive<string>, Matcher>(
matcher: Matcher
): (input: Input) => ReturnType<Matcher[keyof Matcher]>Paramètres
input: une primitive Clean contenant une valeurstring, y compris une valeur contrainte ou un new type.matcher: un objet exhaustif indexé par les valeursstringbrutes possibles. UnePrimitive<string>large nécessite unRecord<string, 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
matchWithNumber- Équivalent pour les primitives numériques.equal- Compare les valeurs de primitives wrappées.
