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:
@@ -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';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user