acacode / acacode/swagger-typescript-api
Inherited/discriminated types are missing type information
- Dominant language
- TypeScript
- Stars
- 4.1k
- Forks
- 436
- PR merge metrics
- No merged PRs in 30d
Description
Command: `swagger-typescript-api --extract-enums --no-client --path https://raw.githubusercontent.com/europace/baufismart-kundenangaben-api/master/kundenangaben-openapi.yaml --name kundenangaben-api.model.ts`
This generates the following output:
```
/** Mögliche Typen: ArbeitserlaubnisVorhanden, KeineArbeitserlaubnis */
interface BaseArbeitserlaubnis {
"@type": string;
}
type BaseArbeitserlaubnisTypeMapping = {
"@type": Key;
} & Type;
/** Mögliche Typen: ArbeitserlaubnisVorhanden, KeineArbeitserlaubnis */
export type Arbeitserlaubnis = BaseArbeitserlaubnis &
(
| BaseArbeitserlaubnisTypeMapping<"ARBEITSERLAUBNIS_VORHANDEN", ArbeitserlaubnisVorhanden>
| BaseArbeitserlaubnisTypeMapping<"KEINE_ARBEITSERLAUBNIS", KeineArbeitserlaubnis>
);
export type ArbeitserlaubnisVorhanden = BaseArbeitserlaubnis & {
/**
* Die Befristung der Arbeitserlaubnis muss in der Zukunft liegen.
* @format date
*/
befristetBis?: string;
};
export type KeineArbeitserlaubnis = BaseArbeitserlaubnis;
```
The type `ArbeitserlaubnisVorhanden` is missing the information, that `@type` has to be `ARBEITSERLAUBNIS_VORHANDEN`, even though it is available in the discrimated type `Arbeitserlaubnis`.
```
const x: ArbeitserlaubnisVorhanden = { '@type': 'KEINE_ARBEITSERLAUBNIS' }; // should error
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.