Lodash - 深度类型验证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lodash - 深度类型验证相关的知识,希望对你有一定的参考价值。

是否有一个lodash方法(或简单的javascript中的好方法)用于根据模式定义验证嵌套对象。

例如,给定一个模式定义对象:

{ 
  profile: {
    application: {
      dates:{
        startDate: String,
        endDate: String
      },
      status: String,
      jobs: [{
        type: Number,
        title: String
      }]
    }
  }
}

我想根据定义键入验证此示例对象:

{
  "profile": {
    "application": {
      "dates": {
        "startDate": "2011-09-20T15:00:00.000Z",
        "endDate": "2018-10-05T15:00:00.000Z"
      },
      "status": "PENDING",
      "jobs": [
        {
          "type": 5,
          "title": "Waiter"
        },
        {
          "type": 1,
          "title": "Engineer"
        },
        {
          "type": 33,
          "title": "Artist"
        },
      ]
    }
  }
}
答案

如果你正在使用像标签描述的Node.js,你可以使用一个模式验证库,那里有一些。一个例子是jsonschema

简单的例子:

var Validator = require('jsonschema').Validator;
var v = new Validator();
var instance = 4;
var schema = {"type": "number"};
console.log(v.validate(instance, schema));

以上是关于Lodash - 深度类型验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 Lodash 进行深度合并

javascript 两个对象之间的深度差异,使用lodash

Lodash 合并:仅在源值与目标值匹配时复制对象属性

Chrome-Devtools代码片段中的多个JS库

lodash简介

lodash常用方法