Skip to content

Commit 1b70b9b

Browse files
committed
Add generic support to instantiating generics
1 parent 85e8b63 commit 1b70b9b

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

scripts/apitypings/main.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,17 @@ func (g *Generator) typescriptType(ty types.Type) (TypescriptType, error) {
578578
if obj := g.pkg.Types.Scope().Lookup(name); obj != nil {
579579
// Sweet! Using other typescript types as fields. This could be an
580580
// enum or another struct
581+
if args := n.TypeArgs(); args != nil && args.Len() > 0 {
582+
genericArgs := make([]string, 0, args.Len())
583+
for i := 0; i < args.Len(); i++ {
584+
genType, err := g.typescriptType(args.At(i))
585+
if err != nil {
586+
return TypescriptType{}, xerrors.Errorf("generic field %q<%q>: %w", name, args.At(i).String(), err)
587+
}
588+
genericArgs = append(genericArgs, genType.ValueType)
589+
}
590+
name += fmt.Sprintf("<%s>", strings.Join(genericArgs, ", "))
591+
}
581592
return TypescriptType{ValueType: name}, nil
582593
}
583594

0 commit comments

Comments
 (0)