Documentation ¶
Overview ¶
Package go2ts is an extremely simple and powerful Go to TypeScript generator. It can handle all JSON serializable Go types and also has the ability to define TypeScript union types for your enum-like types.
Index ¶
- type Go2TS
- func (g *Go2TS) Add(v interface{})
- func (g *Go2TS) AddIgnoreNil(v interface{})
- func (g *Go2TS) AddMultiple(values ...interface{})
- func (g *Go2TS) AddMultipleToNamespace(namespace string, values ...interface{})
- func (g *Go2TS) AddMultipleUnion(values ...interface{})
- func (g *Go2TS) AddMultipleUnionToNamespace(namespace string, values ...interface{})
- func (g *Go2TS) AddToNamespace(v interface{}, namespace string)
- func (g *Go2TS) AddToNamespaceIgnoreNil(v interface{}, namespace string)
- func (g *Go2TS) AddUnion(v interface{})
- func (g *Go2TS) AddUnionToNamespace(v interface{}, namespace string)
- func (g *Go2TS) AddUnionWithName(v interface{}, typeName string)
- func (g *Go2TS) AddUnionWithNameToNamespace(v interface{}, typeName, namespace string)
- func (g *Go2TS) AddWithName(v interface{}, interfaceName string)
- func (g *Go2TS) AddWithNameIgnoreNil(v interface{}, interfaceName string)
- func (g *Go2TS) AddWithNameToNamespace(v interface{}, interfaceName, namespace string)
- func (g *Go2TS) AddWithNameToNamespaceIgnoreNil(v interface{}, interfaceName, namespace string)
- func (g *Go2TS) Render(w io.Writer) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Go2TS ¶
type Go2TS struct { // GenerateNominalTypes tells Go2TS to generate nominal TypeScript types for aliased Go types. // For background on "nominal typing" in TypeScript, see // https://www.typescriptlang.org/play#example/nominal-typing and // https://basarat.gitbook.io/typescript/main-1/nominaltyping. // The TypeScript compiler itself uses this technique to achieve // a similar effect as with Go's type aliases: // https://github.com/Microsoft/TypeScript/blob/7b48a182c05ea4dea81bab73ecbbe9e013a79e99/src/compiler/types.ts#L693 GenerateNominalTypes bool // contains filtered or unexported fields }
Go2TS writes TypeScript definitions for Go types.
func (*Go2TS) Add ¶
func (g *Go2TS) Add(v interface{})
Add a type that needs a TypeScript definition.
See AddToNamespace() for more details.
func (*Go2TS) AddIgnoreNil ¶
func (g *Go2TS) AddIgnoreNil(v interface{})
AddIgnoreNil adds a type that needs a TypeScript definition.
See AddToNamespaceIgnoreNil() for more details.
func (*Go2TS) AddMultiple ¶
func (g *Go2TS) AddMultiple(values ...interface{})
AddMultiple adds multiple types in a single call.
See AddMultipleToNamespace() for more details.
func (*Go2TS) AddMultipleToNamespace ¶
AddMultipleToNamespace adds multiple types to the given TypeScript namespace in a single call.
Will stop at the first type that fails.
func (*Go2TS) AddMultipleUnion ¶
func (g *Go2TS) AddMultipleUnion(values ...interface{})
AddMultipleUnion adds multple union types.
See AddMultipleUnionToNamespace() for more details.
func (*Go2TS) AddMultipleUnionToNamespace ¶
AddMultipleUnionToNamespace adds multple union types to the given TypeScript namespace.
Will stop at the first union type that fails.
func (*Go2TS) AddToNamespace ¶
AddToNamespace adds a type that needs a TypeScript definition to the given TypeScript namespace.
See AddWithNameToNamespace() for more details.
func (*Go2TS) AddToNamespaceIgnoreNil ¶
AddToNamespaceIgnoreNil adds a type that needs a TypeScript definition to the given TypeScript namespace.
See AddWithNameToNamespaceIgnoreNil() for more details.
func (*Go2TS) AddUnion ¶
func (g *Go2TS) AddUnion(v interface{})
AddUnion adds a TypeScript definition for a union type of the values in 'v', which must be a slice or an array.
See AddUnionToNamespace() for more details.
func (*Go2TS) AddUnionToNamespace ¶
AddUnionToNamespace adds a TypeScript definition for a union type of the values in 'v', which must be a slice or an array, to the given TypeScript namespace.
See AddUnionWithNameToNamespace() for more details.
func (*Go2TS) AddUnionWithName ¶
AddUnionWithName adds a TypeScript definition for a union type of the values in 'v', which must be a slice or an array.
See AddUnionWithNameToNamespace() for more details.
func (*Go2TS) AddUnionWithNameToNamespace ¶
AddUnionWithNameToNamespace adds a TypeScript definition for a union type of the values in 'v', which must be a slice or an array, to the given namespace.
If typeName is the empty string then the name of type of elements in the slice or array is used as the type name, otherwise the typeName supplied will be used as the TypeScript type name.
func (*Go2TS) AddWithName ¶
AddWithName adds a type that needs a TypeScript definition.
See AddWithNameToNamespace() for more details.
func (*Go2TS) AddWithNameIgnoreNil ¶
AddWithNameIgnoreNil adds a type that needs a TypeScript definition.
See AddWithNameToNamespaceIgnoreNil() for more details.
func (*Go2TS) AddWithNameToNamespace ¶
AddWithNameToNamespace adds a type that needs a TypeScript definition.
The value passed in can be an instance of a type, a reflect.Type, or a reflect.Value.
The 'name' supplied will be the TypeScript interface name. If 'interfaceName' is the empty string then the Go type name will be used. If the type is of a struct that is anonymous it will be given a name of the form "AnonymousN".
If the type is a struct, the fields of the struct will be named following the convention for json serialization, including using the json tag if supplied. Fields tagged with `json:",omitempty"` will be marked as optional.
There is special handling of time.Time types to be TypeScript "string"s since time.Time implements MarshalJSON, see https://pkg.go.dev/time?tab=doc#Time.MarshalJSON.
If namespace is non-empty, the type will be added inside a TypeScript namespace of that name.
func (*Go2TS) AddWithNameToNamespaceIgnoreNil ¶
AddWithNameToNamespaceIgnoreNil adds a type that needs a TypeScript definition.
This method is identical to AddWithNameToNamespace, with the exception that any nillable values will be ignored (e.g. string slices will be treated as arrays, maps won't be nullable, etc.).
Directories ¶
Path | Synopsis |
---|---|
Package typescript provides primitives to represent TypeScript types, and type declarations.
|
Package typescript provides primitives to represent TypeScript types, and type declarations. |