Skip to content

Use Record or mapped types for map #53

@minism

Description

@minism

I'd like to be able to generate either a Record or a typescript mapped type for a golang map type.

Example:

CheapestReturnMiles map[util.CabinClassT]util.MilesTax `json:"CheapestReturnMiles"`

Config:

type_mappings:
  util.CabinClassT: 'CabinClass'
  util.MilesTax: '{miles: number, tax: number}'

Current output:

CheapestReturnMiles: { [key: CabinClass]: {miles: number, tax: number}};

Expected output:

CheapestReturnMiles: Record<CabinClass, { miles: number; tax: number }>;

The current output fails typescript compliation, since we have CabinClass defined as type CabinClass = 'Economy' | 'First', and typescript doesnt allow literal types as index signatures.

Alternatively a mapped type could be used here:

CheapestReturnMiles: { [key in CabinClass]: { miles: number; tax: number } };

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions