首页 > 解决方案 > 如何在 TypeScript 中创建具有动态键和类型的动态对象?

问题描述

所以我正在做一个项目,“管理员”将创建一个表单,用户将提交它。

我使用 firebase 作为后端数据库,我想将这个“模式”保存到数据库中,前端表单将通过这个模式填充,用户可以使用它提交他们的表单。

例如,

管理员可以创建表单,例如:

Form1: {
   name: "string", // something like this - Option 1
   numberOfBooks: { // or something like this - option 2
     type: "number",
   }
   colorType: { // With option 2, we can do something like this
    type: "dropdown",
    enums: ["Green", "Red", "Blue"]
  }
}

或完全不同的形式,例如:

Form2: {
   shirtSize: "number",
   serialNumber: "number",
   serialValue: "checkbox"
}

此“模式 json”将保存在 Firestore 中。

当用户尝试提交它时,这些类型将从 Firestore 中获取,并将填充到前端 ui 中。

然后,用户将能够提交表单,例如:

userSubmittedForm1: { // which extends Form1:
   name: "Anthony",
   numberOfBooks: 5,
   colorType: "Green",
}

userSubmittedForm2: { // which extends Form2
   shirtSize: 5,
   serialNumber: 144,
   serialValue: "Value123",
}

我一直在寻找答案很多天,但无法实现。任何帮助表示赞赏,谢谢!

标签: jsontypescriptdynamicenumsinterface

解决方案


推荐阅读