Generating New Object Types
type Group<Collection, Selector extends keyof Collection> = {
[k in Collection[Selector] extends string
? Collection[Selector]
: never]?: Collection[];
};
type Group<Collection, Selector extends keyof Collection> = {
[k in Collection[Selector] extends string
? Collection[Selector]
: never]?: Collection[];
};