跳到主要内容

validateFieldValue()

function validateFieldValue(descriptor, value): FieldValidationError | null;

Defined in: packages/rxdb/src/entity/entity-value.utils.ts:660

按 EntityFieldDescriptor 校验单个字段值。

Parameters​

ParameterTypeDescription
descriptorEntityFieldDescriptor来自 describeEntityFields() 或 parseEntityFieldsDescriptor() 的字段描述
valueunknown待校验的值

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' }`