validateFieldValue()
function validateFieldValue(descriptor, value): FieldValidationError | null;
Defined in: packages/rxdb/src/entity/entity-value.utils.ts:660
按 EntityFieldDescriptor 校验单个字段值。
Parameters
| Parameter | Type | Description |
|---|---|---|
descriptor | EntityFieldDescriptor | 来自 describeEntityFields() 或 parseEntityFieldsDescriptor() 的字段描述 |
value | unknown | 待校验的值 |
Returns
FieldValidationError | null
校验通过返回 null,否则返回 FieldValidationError
Remarks
纯函数:不查库、不构造仓储、不解析实体元数据,只看描述符与值本身。校验顺序是 required → 类型 → 枚举成员 → format 值语义,任一环失败即短路返回,不累积多条错误。
该函数与 validateEntityFieldValue 并存且行为不对齐:新函数按「无 fallback 兜底」
只认原生类型——'3.14' 不是合法的 number,'2026-01-01' 与毫秒时间戳也不是合法的 date
(date 只认 Date 实例,与 bigint / binary 同一口径);旧函数的 Number() 强制转换与
new Date(value) 隐式解析保持冻结。
Throws
当 valueType 或 format.kind 不在封闭集合内时抛出 TypeError
Example
const fields = describeEntityFields(Article);
const homepage = fields.fields.find(item => item.field === 'homepage')!;
validateFieldValue(homepage, 'ftp://example.com');
// → `{ field: 'homepage', message: '主页 的协议不在允许范围内:ftp', rule: 'urlScheme', value: 'ftp://example.com' }`