json - 如何在 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",
}
我一直在寻找答案很多天,但无法实现。任何帮助表示赞赏,谢谢!
解决方案
推荐阅读
- php - 它没有给出错误,但它没有插入数据库
- python - CMS (Python/Django) 用户在“创建文章”页面上输入 Web 链接。这是怎么做到的?
- flash - 透明度变成蓝色,闪光
- json - Wordpress API:如何在 VueJS 中按 ID 获取类别名称?
- python - 从子节点之后的 XML 节点中提取文本
- recursion - 为什么我不能在循环内使用 (if (last acc) acc) 作为参数之一?
- html - 如何在这个 HTML 页面中居中这 4 个按钮?
- ms-access - 在 ACCESS vba SQL 中找不到类型不匹配错误
- oracle - 如何在 Update 语句中循环?
- c++ - Classsname instance[count]; 有什么区别?和 C++ 中的 Classname instance = new instance[count]?