我有这样一个字面上的对象:
const objectIdea = {
form: {
div: {
attributes: {
cssClasses: ["Container", "flex"],
},
h1: {
attributes: {
text: "Hello world 2!",
},
},
},
div: {
h1: {
text: "And so on."
},
},
main: {
h1: {
attributes: {
text: "Hello world!"
}
},
},
},
};
其思想是key代表一个HTMLTag,它的值是另一个接受属性key和另一个HTMLTag的对象。(我正在试验)是从该对象自动生成HTML组件,这意味着第一个Form是父对象,接着是3查尔兹div。第一个div有一个h1标签,依此类推。对象可以是任意长度和任意嵌套长度,但始终应为:
HTMLTag: {
attributes: HTMLTagAttributes, // should infer this from it's parent
HTMLTag: { //is the child
attributes: HTMLTagAttributes, // should infejr this from it's parent
HTMLTag: // I think you get the idea
}
我尝试了一些东西,但没有有用的这个问题。
interface IComponentObject<T extends keyof HTMLElementTagNameMap = keyof HTMLElementTagNameMap> {
T:{
attributes: T
}
}
1条答案
按热度按时间hgc7kmma1#
我想应该可以建立一个像你这样的结构。
有两点需要补充:
这是我的代码,也许能帮上忙.