-
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