bcherny/json-schema-to-typescript

properties + anyOf generates incorrect output

Open

#567 ouverte le 11 janv. 2024

Voir sur GitHub
 (4 commentaires) (12 réactions) (0 assignés)TypeScript (449 forks)github user discovery
bughelp wanted

Métriques du dépôt

Stars
 (3 302 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

Given this schema:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string"
    },
    "validFrom": {
      "type": "string"
    },
    "validTo": {
      "type": "string"
    }
  },
  "anyOf": [
    {
      "required": ["id", "validFrom"]
    },
    {
      "required": ["id", "validTo"]
    }
  ],
  "title": "Assortment"
}

This is the type generated:

export type Assortment = Assortment1 & Assortment2;
export type Assortment1 = {
  [k: string]: unknown;
};

export interface Assortment2 {
  id?: string;
  validFrom?: string;
  validTo?: string;
}

And I was hoping it would generate something like this:

export type Assortment =
  | {
      id: string;
      validFrom: string;
      validTo?: string;
    }
  | {
      id: string;
      validFrom?: string;
      validTo: string;
    };

I might be doing something wrong, so my apologies in advance.

Thank you so much!

Guide contributeur