I have the following Interface definitions.
interface IComponents {
root: IComponent,
[key: string]: IComponent,
}
interface IComponent {
type: string,
children?: Array<keyof IComponents>;
}
I want that the "children" properties accept only keys of defined Components.
in the case of the "root.children"-property it should only accept root, button1 and button2:
const list: IComponents = {
root: {
type: 'panel',
children: ['button1', 'button2', 'button3']
},
button1: {
type: 'button'
},
button2: {
type: 'button'
},
}
But it accepts also arbitrary strings, like in the example "button3".
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…