Skip to content

number ​

有限数字。NaN、Infinity 和字符串都不会通过。

签名 ​

ts
function number(msg?: Message): Schema<number>

参数 ​

参数类型说明
msgMessage自定义信息。替换该 Schema 所有错误的默认信息

接受的值 ​

满足 Number.isFinite(value) === true 的数字。零是有效值,而不是空值。

undefined、null 和 '' 都被视为空值 —— 详见 空值。

错误代码 ​

代码触发条件默认信息
required值为空Required
number不是数字、NaN 或 InfinityMust be a number

可以修改这些文本:见 错误信息与国际化。

来自表单和 query 的数字 ​

HTML 表单和 query 字符串中的数字以字符串形式提交("42")。请使用 coerce.number —— 它会把字符串转换为数字。

示例 ​

商品数量 ​

ts
const qty = pipe(number(), integer(), min(1), max(99));

validate(qty, 3);    // 有效
validate(qty, '3');  // Must be a number —— 需要 coerce.number()
validate(qty, 0);    // Must be at least 1

另请参阅 ​