-
Notifications
You must be signed in to change notification settings - Fork 437
Open
Description
Given the following schema:
swagger: '2.0'
paths:
"/api/v1/users":
get:
summary: Get users
operationId: GetUserRoute
responses:
'200':
description: Ok
schema:
type: array
items:
"$ref": "#/definitions/user"
definitions:
user:
type: object
allOf:
- "$ref": "#/definitions/requiredUser"
- "$ref": "#/definitions/optionalUser"
requiredUser:
type: object
allOf:
- "$ref": "#/definitions/email"
required:
- id
properties:
id:
type: string
email:
type: string
optionalUser:
type: object
allOf:
- "$ref": "#/definitions/address"
properties:
name:
type: string
address:
type: object
properties:
zipCode:
type: string
street:
type: stringIt describes a user that is allOf: requiredUser, optionalUser.
And they are again composed of properties and allOf.
Then the generated user.ts looks like this:
import { OptionalUser } from './optionalUser';
import { RequiredUser } from './requiredUser';
export interface User extends RequiredUser {
name?: string;
}So all of requiredUser is included, and only the immediate properties of optionalUser but not the address from the allOf.
My expectation would be:
import { OptionalUser } from './optionalUser';
import { RequiredUser } from './requiredUser';
export interface User extends RequiredUser, OptionalUser {
}Metadata
Metadata
Assignees
Labels
No labels