[typescript] allOf with multiple values is not handled properly
Created by: Fredx87
Description
If a schema is defined with the allOf
operator with multiple values, the generated model is an interface that extends only the first value.
openapi-generator version
3.2.2
OpenAPI declaration file content or url
openapi: 3.0.0
info:
title: TestApi
version: 1.0.0
paths:
/test:
get:
summary: Test
operationId: testApi
responses:
"200":
description: Ok
content:
application/json:
schema:
$ref: "#/components/schemas/ModelC"
components:
schemas:
ModelA:
properties:
foo:
type: string
ModelB:
properties:
bar:
type: string
ModelC:
allOf:
- $ref: "#/components/schemas/ModelA"
- $ref: "#/components/schemas/ModelB"
- type: object
properties:
baz:
type: string
Command line used for generation
docker run --rm -v ${PWD}:/local openapitools/openapi-generator-cli:v3.2.2 generate -i /local/swagger.yaml -g typescript-angular -o /local/ts-angular -DngVersion=6.0 docker run --rm -v ${PWD}:/local openapitools/openapi-generator-cli:v3.2.2 generate -i /local/swagger.yaml -g typescript-fetch -o /local/ts-fetch
Suggest a fix/enhancement
The model generated for ModelC
is the following interface:
export interface ModelC extends ModelA {
baz?: string;
}
When it should be:
export interface ModelC extends ModelA, ModelB {
baz?: string;
}