Skip to content

enumOf ​

TypeScript enum 或 as const 对象的值。

签名 ​

ts
function enumOf<const E extends Record<string, string | number>>(e: E, msg?: Message): Schema<E[keyof E]>

参数 ​

参数类型说明
eenum | objectenum 或包含这些值的对象
msgMessage自定义信息

注意事项 ​

  • 检查的是值而不是名称:对于 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'>

另请参阅 ​

  • oneOf:直接在 Schema 中列出值
  • variant:把 enum 用作标识字段