Skip to content

refine ​

DDataParser.checkerRefine(predicate, options?) crée un checker personnalisé. Il s'intègre partout (schema.addChecker, option checkers, API extended.refine) et réutilise le moteur d'erreurs (path, message, valeur rejetée).

Exemple interactif ​

Quand l'utiliser ? ​

  • Valider un motif métier non couvert par les checkers natifs (IBAN, slug, etc.).
  • Centraliser une règle réutilisable entre plusieurs schémas (checkerRefine est une valeur réutilisable).
  • Exprimer des règles sur des structures complexes (objets, tuples...) en s'appuyant sur addChecker.

Contrat checker ​

Le contrat repose sur le type de sortie du parser ciblé : un checker DataParserChecker<..., T> est compatible avec un parser dont la sortie est T.

Lorsque le prédicat est déclaré comme un type guard TypeScript, le checker affine aussi le type de sortie du parser. parse(...), Output<typeof schema>, les contraintes Clean et les NewTypes portent alors le sous-type validé au lieu du type source plus large.

Raffinement par type guard ​

Exemples supplémentaires ​

Valider des coordonnées ​

Voir aussi ​

  • string - Parser pour les chaînes de caractères
  • literal - Parser pour les valeurs littérales

Diffusé sous licence MIT.