我正在使用yup
執行簡單的 JavaScript 資料驗證。但是我得到了意想不到的行為。我確定我在濫用他們的 API,但這在查看他們的檔案后對我來說并不明顯。我運行以下單元測驗但它失敗了(我希望它通過)。有任何想法嗎?
import { object, string } from 'yup';
test('validator', async () => {
let schema = object({
name: string(),
});
expect(await schema.isValid({ name: 123 })).toEqual(false);
});
使用版本
"yup": "^0.32.11"
嘗試在開玩笑的單元測驗中運行此驗證,但它失敗了。嘗試查看他們的 API 檔案以了解其他驗證方法
uj5u.com熱心網友回復:
這是預期的輸出,因為這就是yup庫的實作方式。當您將該strict
選項應用于模式時,yup 決議器將不會運行,因此消除了由于type_coercionnumber
將您的值轉換為值的可能性。因此,使用該選項,該值將“按原樣”驗證(無 type_coercion),并且由于它不是一個值,因此驗證將失敗,如果沒有該選項,則將存在型別強制并且驗證將成功。string
strict
number
123
string
strict
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/529925.html