我有以下接口定义。
interface IComponents {
root: IComponent,
[key: string]: IComponent,
}
interface IComponent {
type: string,
children?: Array<keyof IComponents>;
}
我希望“子”属性只接受已定义组件的键。在“root.children”属性的情况下,它应该只接受 root、button1 和 button2:
const list: IComponents = {
root: {
type: 'panel',
children: ['button1', 'button2', 'button3']
},
button1: {
type: 'button'
},
button2: {
type: 'button'
},
}
但它也接受任意字符串,如示例“ button3 ”。