Joi 验证一个集合?

Joi validating a Set?

在打字稿中我有一组允许的平台,表示为一组联合:

type Platform = 'WEB' | 'APP' | 'MAIL'
type AllowedPlatforms = Set<Platform>

我想验证一个数组并使用 Joi 将其转换为一个集合:

const validPlatforms = [Joi.string().valid('WEB'), Joi.string().valid('APP'), Joi.string().valid('MAIL')]

const validatePlatform = Joi.array().items(validPlatforms)
e

现在,验证器应检查它是一个数组,其中每个项目都是三个值之一。根据文档,应该有一个转换函数,以便我可以在之后将它转换为一个集合,但我不知道如何使用它 (https://hapi.dev/family/joi/?v=16.1.8#anycastto)。我试过 Joi.array().cast('set') 但 Typescript 抱怨 cast 不存在。

Cast 存在于@hapi/joi 的 16.1.8 版本中,但是我使用的是不包含 cast 的包 joi。这就是为什么它不起作用。