【发布时间】:2020-02-13 01:11:30
【问题描述】:
javascript中的简单joi验证sn-p。验证失败时会简单地返回一个错误对象。
validate.js
const Joi =require("joi");
function validateObject (input) {
const schema = {
key: Joi.string().required(),
};
return Joi.validate(input, schema);
};
let {error} = validateObject({key:5})
console.log(error)
现在我正在学习 typescript 并喜欢在 TS 中执行确切的功能。我知道 Joi 是一个 javascript 库,但我们可以在 Typescript 中使用它。在探索时我遇到了一些替代方案,例如 https://github.com/joiful-ts/joiful。
我很想知道是否有直接在 typescript 中使用 Joi 的直接方法。或者做一些小改动,让 Joi 像在 Javascript 中一样工作。
我尝试了什么
validate.ts
import * as Joi from "joi";
export const validateObject = (input: object) => {
const schema = {
home: Joi.string().required(),
};
return Joi.validate(input, schema);
};
validateObject({key:5})
编译时出现错误
找不到名称“Iterable”。
703 map(iterable: Iterable | { [key: string]: 符号 }): this;
更新
我已按照答案中的建议安装了@types/joi,但仍然出现同样的错误
我基本上是在寻找验证字符串、布尔值、数字、数组和对象键,因为它可以在 Javascript 中使用 Joi 轻松完成
【问题讨论】:
-
您可以在此处添加您的
tsconfig.json或您可能正在使用的任何其他tsc选项吗?我不认为这是joi问题,而只是配置问题。同时确认您的typescript版本。 -
您使用的是什么版本的 joi?您的代码在版本 14 的 stackblitz 上运行良好:stackblitz.com/edit/typescript-ccvxmy
标签: javascript typescript joi