Use Record or mapped types for map
Opened this issue · 1 comments
minism commented
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 } };
minism commented
Also to be clear, happy to take a stab at implementing this if you have pointers or know why this is hard to do