首頁 > web前端 > js教程 > 主體

Ajv-ts 得到了。什麼是新的?

DDD
發布: 2024-09-18 21:55:03
原創
461 人瀏覽過

Ajv-ts got . What

模式驗證工具包的最新版本 0.9 - ajv-ts 帶來了一系列增強功能,以提高開發人員的工作效率並確保更好的驗證準確性。無論您是建立複雜的資料模型還是僅處理基本輸入,這些更新都有助於透過更強大的功能和範例簡化架構定義。以下是此版本中引入的關鍵更新的概述,以及對版本 0.7.

的重大更改的回顧

更清晰的架構範例

0.9 版的主要更新之一是為每種資料類型引入了模式範例。此功能允許開發人員直接在其模式定義中包含特定範例,從而提供更高的透明度和易用性。您也可以將其與任何參數長度一起使用。

  • 對於字串:
// 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
登入後複製
  • 對於數字:
// 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"] }
登入後複製

此變更有助於驗證正確的資料類型並改進程式碼中的文檔,使團隊更容易理解期望的值。

更嚴格的號碼驗證

也值得強調的是先前版本 0.8 中引入的一些重大更改,這些更改帶來了更嚴格的數位驗證:

  • 格式與型別強制: 此更新引入了更嚴格的數位格式規則。例如,僅允許整數和浮點數等特定組合,而不正確的格式會導致錯誤:
s.number().format("float").int(); // Error: incompatible format and type
s.number().int().format("double"); // Error: 'double' format not allowed for integers
登入後複製
  • 範圍驗證: 0.8 版的另一個功能是引進了自動範圍檢查。開發者可以指定數字的最小值和最大值,如果該值超出範圍,系統將拋出錯誤。
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
登入後複製

這些增強功能有助於防止架構定義期間出現邏輯錯誤,並確保資料驗證更加一致。

其他變化

  • 使用 GitHub 進行變更集管理
  • 更新pnpm版本至9.10.0
  • 元方法的元物件更新

結論

Release 0.9Release 0.8 更新透過提供更好的範例、更嚴格的驗證和增強的錯誤,顯著改善了開發人員體驗處理-尤其是對於TypeScript 使用者。這些功能使架構定義更加直觀、可靠,並且在複雜專案中更易於維護。請務必探索新功能,以使您的驗證工作流程更有效率!

快樂的模式定義!

專案連結:https://github.com/vitalics/ajv-ts

以上是Ajv-ts 得到了。什麼是新的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!