tkrajina / typescriptify-golang-structs

A Golang struct to TypeScript class/interface converter
Apache License 2.0
505 stars 87 forks source link

output for pointers are always treated as `omitempty` #60

Open sua-dawn opened 2 years ago

sua-dawn commented 2 years ago

Disclaimer: The following has only been tested using WithInterface(true)- as we're only using interfaces.

Pointers behave as if ,omitempty is applied to the field tag.

This example:

type MyDTO struct {
  Example *float64 `json:"example"`
}

Outputs the following interface:

export interface MyDTO {
  example?: number;
}

This would be correct if the field tag was appended with ,omitempty, like so:

type MyDTO struct {
  Example *float64 `json:"example,omitempty"`
}

But without ,omitempty, the output should be:

export interface MyDTO {
  example: number | null;
}

Are there anyway to achieve this?

Also if I've misunderstood anything (I'm very new to GO), I'd like to apologize in advance 😬