Skip to content

Generate TypeScript types from Go

You can generate TypeScript types from Go structs using the tygo command.

1. Install tygo:

bash
go install github.com/tygo/tygo/cmd/tygo@latest
go install github.com/tygo/tygo/cmd/tygo@latest

2. Create a tygo.yaml configuration file:

yaml:tygo.yaml
packages:
  - path: ./pkg/models
    types:
      - User
packages:
  - path: ./pkg/models
    types:
      - User

This configuration tells tygo to generate TypeScript types for the User struct in the ./pkg/models package.

3. Run tygo to generate the types:

bash
tygo generate
tygo generate

This will create a types.ts file in the same directory as your Go files, containing the generated TypeScript types.

Example:

Go struct (pkg/models/user.go):

go:pkg/models/user.go
package models

type User struct {
	ID        int    `json:"id"`
	FirstName string `json:"firstName"`
	LastName  string `json:"lastName"`
	Email     string `json:"email"`
}
package models

type User struct {
	ID        int    `json:"id"`
	FirstName string `json:"firstName"`
	LastName  string `json:"lastName"`
	Email     string `json:"email"`
}

Generated TypeScript types (types.ts):

typescript:types.ts
export interface User {
  id: number;
  firstName: string;
  lastName: string;
  email: string;
}
export interface User {
  id: number;
  firstName: string;
  lastName: string;
  email: string;
}