interface IUser {
cname: string;
age: number;
}
const obj = {
cname: 'xxx',
age: 18
}
如何判断上面的obj是否完全符合interface?
需求是:
因为obj是用户提交,内容不可控,想要把obj中仅在IUser里有定义的字段提取出来,这个这么实现?
interface IUser {
cname: string;
age: number;
}
const obj = {
cname: 'xxx',
age: 18
}
如何判断上面的obj是否完全符合interface?
需求是:
因为obj是用户提交,内容不可控,想要把obj中仅在IUser里有定义的字段提取出来,这个这么实现?
可以借助 joi 去做对象验证操作,提取的话,只能自己手动提取了,验证的example
const Joi = require('joi');
const userSchema = Joi.object({
cname: Joi.string().required(),
age: Joi.number().required()
})
userSchema.validate({ cname: 'abc', age: 21 });
// -> { value: { cname: 'abc', age: 21 } }
userSchema.validate({});
// -> { value: {}, error: '"cname" is required. "age" is required' }
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.2k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
typescript是静态类型系统,运行时就是JavaScript没有类型检测。只能在代码中嵌入硬编码,
然后之类之类的
或者你换个思路,用户不也能直接请求接口发送一个自定义的结构吗,所以不用太纠结