Javascript Objective.js是否忽略未识别属性类型的验证?

Javascript Objective.js是否忽略未识别属性类型的验证?,javascript,validation,ajv,objection.js,Javascript,Validation,Ajv,Objection.js,我在我的异议模型中使用这个jsonSchema: static get jsonSchema() { return { type: 'object', required: ['firstName', 'lastName'], properties: { id: { type: 'integer' }, parentId: { type: ['integer', 'null'] }, firstNam

我在我的异议模型中使用这个jsonSchema:

  static get jsonSchema() {
    return {
      type: 'object',
      required: ['firstName', 'lastName'],

      properties: {
        id: { type: 'integer' },
        parentId: { type: ['integer', 'null'] },
        firstName: { type: 'string', minLength: 1, maxLength: 255 },
        lastName: { type: 'string', minLength: 1, maxLength: 255 },
        date: {type: 'unexisting-type'},
        age: { type: 'number' },
      }
    };
  }
您可以看到,date是AJV验证(Objective.js使用)无法识别的类型。但是,插入以下数据时,插入操作返回成功:

{
    "firstName":"sample",
    "lastName":"sample",
    "date":"2018-12-21 10:20"
}
为什么AJV在创建模式时不返回验证错误

我在一个最小的JSFIDLE示例中进行了测试,它确实返回了一个错误(AJV6.6.2)


我使用Objective v1.4.0(使用AJV v6.1.1)

运行下面的代码时,我确实遇到了以下异常。(如果我将代码包装到JSFIDLE中,也会得到类似的结果。)

架构无效:data.properties['date']。类型应等于允许的值data.properties['date']之一。类型应为array,data.properties['date']。类型应与其中任何一个中的某个架构匹配

var ajv=新ajv({
所有错误:正确
});
变量模式={
类型:“对象”,
特性:{
日期:{
类型:“不存在的类型”
}
}
};
试一试{
var validate=ajv.compile(模式);
}捕获(e){
控制台日志(e.message);
}

异议本身正在向Ajv传递关闭模式验证的选项,因此在Ajv模式编译时不会抛出错误

目前,异议v1将保持这种行为,因为这是一个突破性的变化。可以在v2中添加


感谢您的回复!我认为反对意见是承认错误或使用你提到的选项。我添加了一个不存在的验证属性,但仍然没有得到任何错误:
日期:{type:'unexisting type',unexistingProperty:'unexisting property'}
。本例中的Im测试:(只添加了'date'属性,没有其他内容)