Maison > interface Web > js tutoriel > Ajv-ts a obtenu . Quoi de neuf?

Ajv-ts a obtenu . Quoi de neuf?

DDD
Libérer: 2024-09-18 21:55:03
original
473 Les gens l'ont consulté

Ajv-ts got . What

La dernière version 0.9 de Schema Validation Toolkit - ajv-ts apporte une suite d'améliorations pour améliorer la productivité des développeurs et garantir une meilleure précision de validation. Que vous créiez des modèles de données complexes ou que vous gériez simplement des entrées de base, ces mises à jour aident à rationaliser les définitions de schéma avec des fonctionnalités et des exemples plus robustes. Voici un aperçu des principales mises à jour introduites dans cette version, ainsi qu'un récapitulatif des changements importants par rapport à la version 0.7.

Exemples de schémas pour une meilleure clarté

L'une des mises à jour majeures de la version 0.9 est l'introduction d'exemples de schéma pour chaque type de données. Cette fonctionnalité permet aux développeurs d'inclure des exemples spécifiques directement dans leurs définitions de schéma, offrant plus de transparence et de facilité d'utilisation. Vous pouvez également l'utiliser avec n'importe quelle longueur d'argument.

  • Pour les cordes :
// Valid examples for a string schema
const myString = s.string().examples(["hello", "world"]);
myString.schema // // {type: 'string', examples: ['hello', 'world']}
s.string().examples("hello", "world"); // OKs
Copier après la connexion
  • Pour les chiffres :
// Valid examples for a number schema
const myNum1 = s.number().examples(1, 2, 3);
myNum1.schema // {type: 'number', examples: [1,2,3]}

// TypeScript error for invalid number types
// @ts-ignore fails ts, but schema still ok
const myNum2 = s.number().examples(["abc", "123"]);
myNum2.schema // {type: "number", examples: ["abc", "123"] }
Copier après la connexion

Ce changement permet de valider les types de données corrects et d'améliorer la documentation dans votre code, permettant ainsi aux équipes de comprendre plus facilement quelles valeurs sont attendues.

Validation plus stricte des numéros

Il convient également de souligner certains des changements importants introduits dans la version précédente 0.8, qui ont apporté une validation des nombres plus rigoureuse :

  • Application du format et du type : Cette mise à jour a introduit des règles plus strictes pour les formats de nombres. Par exemple, seules des combinaisons spécifiques telles que des entiers et des flottants sont autorisées, tandis que des formats incorrects entraînent des erreurs :
s.number().format("float").int(); // Error: incompatible format and type
s.number().int().format("double"); // Error: 'double' format not allowed for integers
Copier après la connexion
  • Validation de la gamme : Une autre fonctionnalité de la version 0.8 était l'introduction de la vérification automatique de la portée. Les développeurs peuvent spécifier des valeurs minimales et maximales pour les nombres, et le système générera une erreur si la valeur est hors plage.
s.number().min(5).max(3); // Error: max cannot be smaller than min
s.number().min(1).max(10).const(15); // Error: constant is out of specified range
Copier après la connexion

Ces améliorations ont permis d'éviter les erreurs logiques lors de la définition du schéma et ont assuré une validation des données plus cohérente.

Autres changements

  • Gestion des ensembles de modifications avec GitHub
  • Mettre à jour la version de pnpm vers 9.10.0
  • Mises à jour des méta-objets pour la méta-méthode

Conclusion

Les mises à jour de la version 0.9 et de la version 0.8 améliorent considérablement l'expérience des développeurs en offrant de meilleurs exemples, une validation plus stricte et des erreurs améliorées. gestion, en particulier pour les utilisateurs de TypeScript. Ces fonctionnalités rendent la définition de schéma plus intuitive, fiable et plus facile à maintenir dans des projets complexes. Assurez-vous d'explorer la nouvelle fonctionnalité pour rendre vos flux de validation plus efficaces !

Bonne définition du schéma !

Lien vers le projet : https://github.com/vitalics/ajv-ts

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal