omit
创建不包含列出字段的新对象 Schema。
签名
ts
function omit<S, K extends keyof S>(schema: ObjectSchema<S>, keys: K[]): ObjectSchema<Omit<S, K>>参数
| 参数 | 类型 | 说明 |
|---|---|---|
schema | ObjectSchema | 由 object 创建的 Schema |
keys | string[] | 要移除的字段 |
注意事项
默认情况下多余字段会从 data 中删除(strip 模式),因此 omit 也适用于 API 响应:让数据库记录通过不含密码的 Schema,密码就不会发送给客户端。
示例
公开资料
ts
const User = object({
id: number(),
name: string(),
email: string(),
password: string(),
});
const PublicUser = omit(User, ['password', 'email']);
parse(PublicUser, userFromDb); // { id: 1, name: 'Ivan' }