RecipesChapter 4: Generics

Generating New Object Types

Recipe 4.5 from The TypeScript Cookbook

type Group<Collection, Selector extends keyof Collection> = {
  [k in Collection[Selector] extends string
    ? Collection[Selector]
    : never]?: Collection[];
};
Open in TypeScript Playground →