Typescript Joi日期验证

dauxcl2d  于 2023-05-19  发布在  TypeScript
关注(0)|答案(3)|浏览(197)

有没有办法让Joi.date只接受YYYY-MM-DD格式?我尝试用途:

Joi.date().format('YYYY-MM-DD')

但我得到一个错误

Property 'format' does not exist on type 'DateSchema'.ts(2339)
6ljaweal

6ljaweal1#

如果您使用的是import而不是require(),则使用以下代码。

import coreJoi from "joi";
import joiDate from "@joi/date";
const joi = coreJoi.extend(joiDate) as typeof coreJoi;

const sampleEntry = joi.object({
    fromDate: joi.date().format("YYYY-MM-DD").required(),
    toDate: joi.date().format("YYYY-MM-DD").required(),
});

或者,您也可以编写imports,如下所示:

import * as coreJoi from "joi";
import * as joiDate from "@joi/date";
const joi = coreJoi.extend(joiDate.default(coreJoi)) as typeof coreJoi;
kgsdhlau

kgsdhlau2#

请确保您安装了joi@joi/date,并扩展了Joi,如下所示。

const Joi = require('joi')
.extend(require('@joi/date'));

那么你应该能够使用Joi.date().format('YYYY-MM-DD')没有任何错误。

7uhlpewt

7uhlpewt3#

你可以试试这个

import BaseJoi, { Extension, Root } from 'joi'
import JoiDate from '@joi/date'

const Joi = BaseJoi.extend(JoiDate as unknown as Extension) as Root

相关问题