我正在生成一个JSON文件,并且在TypeScript中有一个以下类型的变量:
export interface Rules{
name: string,
condition: string,
}
我想以以下格式解析JSON中的"规则"类型:
"dataRetentionRules": {
"RULE_1": {
"name": "test123",
"condition": "RetentionStartDate"
},
"RULE_2": {
"name": "test456",
"condition": "RetentionEndDate"
}
}
如何使此规则标记动态?我的意思是,我该如何解析这个"RULE_1"
、"RULE_2"
标记?既然标签应该是恒定的,我相信。如何实现上述格式?
您可以使用typescriptRecord
内置类型。在幕后,您正在使用索引类型和映射类型的原则。
但您真正需要知道的是:Record<string, Rules>
定义了一个对象,其键是字符串,其值是Rules
的实例。
您的JSON对象可以通过来描述
interface HasRetentionRules {
dataRetentionRules: Record<string, Rules>
}
请注意,这是在断言任何字符串键都对应于Rules
对象,并且它不会检查无效键,因此您需要自己检查无效键。或者,您可以使用Partial<Record<string, Rules>>
,它表示任何字符串键都具有Rules
或undefined
类型的值。
打字游戏场链接