在typescript中有没有一个特殊的类型与JSON模式对象相关联?我的类有一个方法可以检查它的成员是否满足动态JSON模式schema
,现在我是这样做的,
<!-- language: typescript -->
verifySchema(schema: object): void {
// do verification
}
其中例如
<!-- language: typescript -->
const schema = {
title: 'blabla',
description: 'Basic schema',
type: 'object',
properties: {
"firstName": {
"type": "string",
"description": "The person's first name."
},
"lastName": {
"type": "string",
"description": "The person's last name."
},
...
}
但是为了保持通用性,我希望允许检查任意的json模式,而不仅仅是这个特定的模式。设置schema: object
是否合适,或者是否有针对JSON模式对象的最佳实践?
2条答案
按热度按时间inkz8wg91#
您可以使用@types/json-schema。
然后:
wj8zmpe12#
我需要以相同的方式输入模式,但理想情况下,我希望有一个通用的解决方案,如果可能的话,不需要外部包,这样我就可以基于一个可以更改和引入附加属性项的模式来通用地输入键。
我通过在接口上添加一个键索引签名来实现这一点,这意味着键可以是任何
string
,但也为该string
键入了其他属性,在本例中,这是type
和description
,这给我带来了键是通用的好处,但键属性是严格类型化的。架构可初始化为
然后,您可以通过键访问模式中的属性,还可以从智能感知建议中受益,这还可以扩展为支持JSON
$refs
和required
模式项。