JSON中的动态标记



我正在生成一个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>>,它表示任何字符串键都具有Rulesundefined类型的值。

打字游戏场链接

最新更新