literal
恰好等于某个特定值:字符串、数字或 true/false。使用严格比较(===)。
签名
ts
function literal<const T extends string | number | boolean>(value: T, msg?: Message): Schema<T>参数
| 参数 | 类型 | 说明 |
|---|---|---|
value | `string | number |
msg | Message | 自定义信息。替换该 Schema 所有错误的默认信息 |
错误代码
| 代码 | 触发条件 | 默认信息 |
|---|---|---|
required | 值为空 | Required |
literal | 值不匹配 | Must be {expected} |
可以修改这些文本:见 错误信息与国际化。
注意事项
- 结果类型就是字面量本身:
literal('admin')的类型是'admin',而不是string。 literal('')不起作用:空字符串被视为未填写。见 空值。
示例
同意条款
ts
const Signup = object({
terms: literal(true, '请同意条款'),
});API 版本
ts
const Payload = object({ version: literal(2), data: unknown() });