Typescript Joi 日期验证

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

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

但我得到一个错误

Property 'format' does not exist on type 'DateSchema'.ts(2339)
stack overflow Typescript Joi date validation
原文答案
author avatar

接受的答案

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

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

然后你应该可以使用 Joi.date().format('YYYY-MM-DD') 而不会出现任何错误。


答案:

作者头像

如果您使用 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;