Conventions de validation
L'essentiel de cette bibliothèque est fait de validations, et presque toutes suivent un seul schéma de noms. Apprenez les quatre préfixes une fois, et le nom d'une fonction vous dira sa signature, sa valeur de retour et si elle peut lever.
Les quatre préfixes
Préfixe | Répond à | Renvoie | Lève |
|---|---|---|---|
| Cette valeur est-elle un |
| Non |
| Cette valeur n'est-elle pas un |
| Non |
| Donne-moi cette valeur en tant que | la valeur, typée | Oui, si ce n'est pas un |
| Donne-moi la valeur, sachant qu'elle n'est pas un | la valeur, | Oui, si c'est un |
isX et nonX sont des prédicats : ils répondent à une question et n'interrompent jamais le flot. requireX et requireNonX sont des assertions : ils rendent la valeur, ce qui permet d'appeler en pleine expression, ou lèvent.
Les prédicats restreignent les types
Les gardes isX sont déclarés comme prédicats de type TypeScript : le compilateur restreint donc la valeur dans la branche.
nonX restreint dans l'autre sens — il retire X du type plutôt que de le confirmer :
Écrire nonX(value) revient au même test que !isX(value). L'intérêt du préfixe est qu'une clause de garde se lit comme une phrase et non comme une négation — ce qui compte là où l'alternative s'écrirait if (!isConsistent2DArray(rows)).
Les assertions rendent la valeur
requireX valide et renvoie : l'appel s'insère dans une expression au lieu d'exiger une instruction séparée.
Chaque requireX accepte un dernier argument facultatif message, utilisé comme message de l'exception lorsque la validation échoue :
Quelle exception lève chacune d'elles est indiqué dans Gestion des exceptions.
X et XLike
Quelques prédicats existent en version stricte et en version permissive. Le nom simple teste le type ; le suffixe Like teste si la valeur peut être utilisée comme ce type :
Fonction | Accepte |
|---|---|
| toute valeur dont |
| les nombres finis et les chaînes non vides qui se convertissent en un nombre fini |
| toute valeur non nulle dont |
| la même chose, plus les fonctions |
| les valeurs marquées comme fonction, générateur, fonction asynchrone ou proxy |
| toute valeur non nulle dont |
On prend la forme Like quand la valeur vient d'une cellule, d'une réponse de formulaire ou d'un paramètre d'URL : là, un nombre est généralement arrivé sous forme de chaîne.
Null, undefined et nil
Trois noms couvrent les cas vides, et la distinction est exacte :
Fonction | Vraie pour |
|---|---|
|
|
|
|
| l'un ou l'autre |
requireNonNull est l'assertion qui va avec isNil, pas avec isNull: elle rejette null comme undefined et lève NullPointerException.
isEmpty est un test plus large encore. Il est vrai pour null et undefined, pour une chaîne vide ou faite d'espaces, pour un tableau vide, pour un Set ou une Map de taille zéro, et pour un objet simple sans propriété énumérable. Il est faux pour tout le reste, 0 et false compris. Passez true en second argument pour ne considérer vide qu'une chaîne de longueur nulle :
Couverture
Les quatre préfixes décrivent une grille, et elle est presque remplie : chaque type doté d'un isX a son nonX, requireX couvre les types qu'un appel valide d'ordinaire, et requireNonX existe pour tout lang/base comme pour les types numériques. Une combinaison absente l'est parce que personne n'en a eu besoin, non parce qu'elle serait exclue : ouvrez une issue et elle pourra être ajoutée.
Chaque fonction listée dans la référence a sa propre page, et chaque page est engendrée à partir d'un symbole que le paquet exporte réellement — un nom figurant dans les tableaux est donc importable.
Une exception à la règle
nonEmptyString ne suit pas la convention. Malgré son préfixe non, elle valide et renvoie une valeur, et lève en cas d'échec : c'est une fonction requireX sous un nom trompeur. Elle est dépréciée au profit de requireNonEmptyString, qui se comporte à l'identique sous le bon nom, et sera retirée dans une future version majeure.
Cette documentation a été générée par une IA (Claude) à partir du code source de la bibliothèque.