FireCMS配置oneOf混合类型数组报TypeScript错误的解决咨询
问题原因
你对FireCMS混合类型数组的oneOf配置结构理解有误,所以触发了TS类型校验错误:
- 数组类型需要先通过
of字段定义每一项的基础类型为map,因为你每一条数组元素是包含type和value的对象结构 oneOf字段不能直接放属性配置,必须嵌套在数组项的map配置内,且oneOf下必须包含properties字段声明所有支持的类型对应的属性规则,你直接把type、config等字段写在oneOf下,不符合类型定义要求。
修正后的配置
仅支持字符串的基础版本
content: { title: "Content", description: "This is your page content", dataType: "array", // 定义数组每一项是map结构 of: { dataType: "map", oneOf: { // 声明所有支持的类型规则,key对应type字段的存储值,value对应value字段的属性配置 properties: { "Copy": { dataType: "string", markdown: true } } // typeField默认值为"type",valueField默认值为"value",和你需要的存储结构完全匹配,无需额外配置 } } }
后续添加图片类型的扩展版本
需要新增图片支持时,直接在oneOf.properties下新增类型配置即可:
content: { title: "Content", description: "This is your page content", dataType: "array", of: { dataType: "map", oneOf: { properties: { "Copy": { dataType: "string", markdown: true }, // 新增图片类型配置 "Image": { dataType: "string", storage: { storagePath: "你的图片存储路径", acceptedFiles: ["image/*"] } } } } } }
内容的提问来源于stack exchange,提问作者Chris Evans
相关产品推荐
相关产品推荐

