forked from loafle/openapi-generator-original
represent swagger enums as union of literal types (#6233)
* represent swagger enums as union of literal types enabling their easy use in angular templates, structural subtyping among enums (in particular, different instances of the same enum are now mutually assignable), improving type safety by preventing incorrect widening, and permitting numeric enum values (albeit without descriptive names) Fixes #6206, #5146, #3500 * update samples * restore blank lines at end of file * fix typo
This commit is contained in:
parent
cc756b5563
commit
eab9c72a42
@ -1,7 +1,2 @@
|
||||
export enum {{classname}} {
|
||||
{{#allowableValues}}
|
||||
{{#enumVars}}
|
||||
{{{name}}} = <any> {{{value}}}{{^-last}},{{/-last}}
|
||||
{{/enumVars}}
|
||||
{{/allowableValues}}
|
||||
}
|
||||
export type {{classname}} = {{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}} | {{/-last}}{{/enumVars}}{{/allowableValues}};
|
||||
|
||||
|
@ -16,13 +16,8 @@ export interface {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{
|
||||
export namespace {{classname}} {
|
||||
{{#vars}}
|
||||
{{#isEnum}}
|
||||
export enum {{enumName}} {
|
||||
{{#allowableValues}}
|
||||
{{#enumVars}}
|
||||
{{{name}}} = <any> {{{value}}}{{^-last}},{{/-last}}
|
||||
{{/enumVars}}
|
||||
{{/allowableValues}}
|
||||
}
|
||||
export type {{enumName}} = {{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}} | {{/-last}}{{/enumVars}}{{/allowableValues}};
|
||||
{{/isEnum}}
|
||||
{{/vars}}
|
||||
}{{/hasEnums}}
|
||||
}{{/hasEnums}}
|
||||
|
||||
|
@ -33,9 +33,5 @@ export interface Order {
|
||||
|
||||
}
|
||||
export namespace Order {
|
||||
export enum StatusEnum {
|
||||
Placed = <any> 'placed',
|
||||
Approved = <any> 'approved',
|
||||
Delivered = <any> 'delivered'
|
||||
}
|
||||
export type StatusEnum = 'placed' | 'approved' | 'delivered';
|
||||
}
|
||||
|
@ -35,9 +35,5 @@ export interface Pet {
|
||||
|
||||
}
|
||||
export namespace Pet {
|
||||
export enum StatusEnum {
|
||||
Available = <any> 'available',
|
||||
Pending = <any> 'pending',
|
||||
Sold = <any> 'sold'
|
||||
}
|
||||
export type StatusEnum = 'available' | 'pending' | 'sold';
|
||||
}
|
||||
|
@ -33,9 +33,5 @@ export interface Order {
|
||||
|
||||
}
|
||||
export namespace Order {
|
||||
export enum StatusEnum {
|
||||
Placed = <any> 'placed',
|
||||
Approved = <any> 'approved',
|
||||
Delivered = <any> 'delivered'
|
||||
}
|
||||
export type StatusEnum = 'placed' | 'approved' | 'delivered';
|
||||
}
|
||||
|
@ -35,9 +35,5 @@ export interface Pet {
|
||||
|
||||
}
|
||||
export namespace Pet {
|
||||
export enum StatusEnum {
|
||||
Available = <any> 'available',
|
||||
Pending = <any> 'pending',
|
||||
Sold = <any> 'sold'
|
||||
}
|
||||
export type StatusEnum = 'available' | 'pending' | 'sold';
|
||||
}
|
||||
|
@ -33,9 +33,5 @@ export interface Order {
|
||||
|
||||
}
|
||||
export namespace Order {
|
||||
export enum StatusEnum {
|
||||
Placed = <any> 'placed',
|
||||
Approved = <any> 'approved',
|
||||
Delivered = <any> 'delivered'
|
||||
}
|
||||
export type StatusEnum = 'placed' | 'approved' | 'delivered';
|
||||
}
|
||||
|
@ -35,9 +35,5 @@ export interface Pet {
|
||||
|
||||
}
|
||||
export namespace Pet {
|
||||
export enum StatusEnum {
|
||||
Available = <any> 'available',
|
||||
Pending = <any> 'pending',
|
||||
Sold = <any> 'sold'
|
||||
}
|
||||
export type StatusEnum = 'available' | 'pending' | 'sold';
|
||||
}
|
||||
|
@ -33,9 +33,5 @@ export interface Order {
|
||||
|
||||
}
|
||||
export namespace Order {
|
||||
export enum StatusEnum {
|
||||
Placed = <any> 'placed',
|
||||
Approved = <any> 'approved',
|
||||
Delivered = <any> 'delivered'
|
||||
}
|
||||
export type StatusEnum = 'placed' | 'approved' | 'delivered';
|
||||
}
|
||||
|
@ -35,9 +35,5 @@ export interface Pet {
|
||||
|
||||
}
|
||||
export namespace Pet {
|
||||
export enum StatusEnum {
|
||||
Available = <any> 'available',
|
||||
Pending = <any> 'pending',
|
||||
Sold = <any> 'sold'
|
||||
}
|
||||
export type StatusEnum = 'available' | 'pending' | 'sold';
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user