如何为TypeScript类执行Joi验证?

时间:2017-07-04 06:07:59

标签: javascript node.js validation typescript joi

我能够在节点中对函数表达式执行Joi Validations,如下所示

export var shippingInfo = Joi.object().keys({
   expectedDeliveryDate:Joi.date().required(),
   isRegisteredCompanyAddress:Joi.number().required(),
   addressLine:Joi.string(),
   country:Joi.string(),
   state:Joi.string(),
   city:Joi.string(),
   zipcode:Joi.string()
});

但问题是,我最近开始研究打字稿。所以在这里,我的课程很少,我应该按照上面的函数表达式执行Joi验证。即我想验证下面的课程

export class ShippingInfo {
   expectedDeliveryDate: Date,
   isRegisteredCompanyAddress: number,
   addressLine:string,
   country:string,
   state:string,
   city:string,
   zipcode:string
}

我应该如何对上述课程进行验证。应该对班级或对象级别进行验证吗?如何?

1 个答案:

答案 0 :(得分:1)

您可以将此项目用作参考。 tsdv-joi

// ...imports...

registerJoi(Joi);

class MyClass {
    @Max(5)
    @Min(2)
    @StringSchema
    public myProperty : string;
}

let instance = new MyClass();
instance.myProperty = "a";

const validator = new Validator();
var result = validator.validate(instance);
console.log(result); // outputs the Joi returned value

如果您需要npm包,那么您可以使用此包装器gearworks