Joi验证自引用嵌套模式

时间:2020-02-17 10:53:02

标签: typescript joi

我正在尝试验证一个模式,该模式连同其他字段一样具有一系列自引用对象,如下所示:

export const answer = answerModel.concat(Joi.object().keys({
    childAnswers: Joi.array().items(answer),
    numArray: Joi.array().items(Joi.number()).required()
}))

我的问题是我无法在答案架构 Joi.array()。items(answer)中引用答案架构,因为在声明它之前我无法使用它。

问题是“有没有办法以这种嵌套格式进行自我引用进行验证”?

1 个答案:

答案 0 :(得分:2)

您可以为此目的使用Joi.link()

const person = Joi.object({
  firstName: Joi.string().required(),
  lastName: Joi.string().required(),
  friends: Joi.array().items(Joi.link('#person'))
}).id('person');