-
Notifications
You must be signed in to change notification settings - Fork 17
Open
Description
schema.yaml
...
components:
schemas:
BaseSchema:
type: object
properties:
type:
type: string
enum:
- FOO
- BAR
- BAZ
required:
- type
FooSchema:
allOf:
- $ref: '#/components/schemas/BaseSchema'
- type: object
properties:
type:
type: string
enum:
- FOO
It is correct JSONSchema
FooSchema equal type:
type FooSchema = { type: 'FOO' | 'BAR' | 'BAZ' } & { type: 'FOO' | undefined} -> { type: 'FOO' }
generated code:
export type BaseSchema = { type: 'FOO' | 'BAR' | 'BAZ' };
export type FooSchema = BaseSchema & { type: Option<'FOO'> };
Nothing can match type FooSchema. I understand that this is the result of a combination of optionFromNullable and intersection. It turns out that we do not fully support the JSONSchema. We could throw away the mistake of not supporting this case.
Let's discuss this and think about a solution.
Metadata
Metadata
Assignees
Labels
No labels