Skip to main content
@Type, @Input, and @Interface accept Generic[T]. Each unique parametrization is synthesized into one concrete GraphQL type at build time and memoized, so the same parametrization always resolves to the same named type.
The example synthesizes a UserPage type whose items field is typed [User!]!. Synthetic names are derived from the parameter (User + PageUserPage); pass a name template with a {} placeholder to override the naming scheme. TypeVar fields are resolved against the concrete parameters at each parametrization site.