According to vuejs/core#7982 (comment), the each slot definition can be a function whose return value should restrict what components can be put in that slot. By default, its any or VNode[] which is not restricting anything, but one should be able to specify a certain component.
For example, the restrict slot of a component defined with
defineSlots<{
default(props: { foo: string; bar: number }): any,
restict(props: { data: string }): typeof Button[]
}>()
should only allow Buttons as children.
Playground which also shows that type interference/restriction for children is not working.
According to vuejs/core#7982 (comment), the each slot definition can be a function whose return value should restrict what components can be put in that slot. By default, its
anyorVNode[]which is not restricting anything, but one should be able to specify a certain component.For example, the
restrictslot of a component defined withshould only allow Buttons as children.
Playground which also shows that type interference/restriction for children is not working.