enumOf
TypeScript enum 或 as const 对象的值。
签名
ts
function enumOf<const E extends Record<string, string | number>>(e: E, msg?: Message): Schema<E[keyof E]>参数
| 参数 | 类型 | 说明 |
|---|---|---|
e | enum | object | enum 或包含这些值的对象 |
msg | Message | 自定义信息 |
注意事项
- 检查的是值而不是名称:对于
enum Role { Admin = 'admin' },'admin'有效,'Admin'无效。 - TypeScript 会为数字
enum添加反向键(Level[0] === 'Low')—— 它们不是有效值。 - 与
oneOf相同:相同的错误代码和{options}参数。
错误代码
| 代码 | 触发条件 | 默认信息 |
|---|---|---|
required | 值为空 | Required |
oneOf | 值不在 enum 中 | Must be one of: {options} |
示例
ts
enum Role {
Admin = 'admin',
User = 'user',
}
const role = enumOf(Role); // Schema<Role>
validate(role, 'admin').valid; // true
validate(role, 'Admin').errors; // { '': 'Must be one of: admin, user' }ts
const Status = { Draft: 'draft', Published: 'published' } as const;
const status = enumOf(Status); // Schema<'draft' | 'published'>