Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Every property marked as optional + 'any' types

Abierto
#158 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
openapi, typescript
Área
api, tooling

Línea de trabajo

Comienza en el TypeScript interface generator y sigue cómo se asignan la obligatoriedad y los tipos primitivos de las propiedades de Swagger/OpenAPI. Compara el ejemplo ContactPerson con su esquema y verifica después que las propiedades obligatorias no sean opcionales y que las propiedades documentadas de tipo string o date no se conviertan en any.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

API Platform version(s) affected: 3.0

Description
I generated typescript interfaces from a API Platform with this package. This worked really well, but there are two issues that make the result pretty much unusable for me:

  • Every property is marked as optional, even '@id'. Having to manual check for every property kinda defeats the purpose of having the interfaces in the first place.
  • Some properties are marked as any, even though there is a proper type in the API docs. E.g. ContactPerson.image is listed as string in Swagger, but appears as any in TypeScript. I also noticed dates being any – but this was in a API Platform 2.6 project and might not be an issue in newer versions.

Here is an example taken out of my Swagger docs:

{
  "hydra:member": [
    {
      "@context": "string",
      "@id": "string",
      "@type": "string",
      "id": "string",
      "name": "string",
      "phoneNumber": "string",
      "email": "string",
      "jobAdvertisements": [
        "string"
      ],
      "image": "string"
    }
  ],
  "hydra:totalItems": 0,
  "hydra:view": {
    "@id": "string",
    "type": "string",
    "hydra:first": "string",
    "hydra:last": "string",
    "hydra:previous": "string",
    "hydra:next": "string"
  },
  "hydra:search": {
    "@type": "string",
    "hydra:template": "string",
    "hydra:variableRepresentation": "string",
    "hydra:mapping": [
      {
        "@type": "string",
        "variable": "string",
        "property": "string",
        "required": true
      }
    ]
  }
}

And this is the generated interface:

export interface ContactPerson {
  "@id"?: string;
  name?: string;
  phoneNumber?: string;
  email?: string;
  jobAdvertisements?: string[];
  image?: any;
}
Lenguaje dominante
TypeScript
Estrellas
113
Forks
80
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de api-platform/api-doc-parser

Todos los issues de api-platform/api-doc-parser

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.