typescript - Hvordan validere egendefinerte typer med Joi?


La oss si at vi har denne TypeScript-koden:

export class Dog {
  name = 'Fido'
  favoriteFood: Food | null = null
}

export class Food {
  name: string | null = null
}

export const DogSchema = Joi.object({
  name: Joi.string(),
  favoriteFood: Joi.object() // How to configure this correctly?? I would prefer to use FoodSchema in this line somehow
})

export const FoodSchema = Joi.object({
  name: Joi.string(),
})

const fido = new Dog()
fido.favoriteFood = new Food()
const res1 = DogSchema.validate(fido) // Gives no error!! 
const res2 = FoodSchema.validate(fido.favoriteFood) // Gives expected error: "name" must be a string

Hvordan kan jeg konfigurere Joi slik at når jeg validerer fido, validerer valideringen også fidos favorittmat?

Svar #1

Svaret var ganske enkelt og rett frem:

export const DogSchema = Joi.object({
  name: Joi.string(),
  favoriteFood: FoodSchema // Just put the schema here! 
})

Takk, Ankh!

Relaterte artikler