loopbackio / loopbackio/loopback-next

Invalid TS models when properties are nullable

Abierto
#9,024 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug CLI OpenAPI
Lenguaje dominante
TypeScript
Estrellas
5.1k
Forks
1.1k
Merge medio
2 d 21 h
PR fusionados (30 d)
27

Descripción

Hi! It seems the openapi connector is not setting the correct TS type when setting true the nullable flag

For example, with the following JSON OpenAPI definition model:

      "TestObject": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true,
             "default": null,
            "description": "Test property",
            "example": null
          },

It creates a model with the following property:

  @property({jsonSchema: {
  type: [
    'string',
    'null',
  ],
  default: null,
  description: 'Specific endpoint for this queue, if not specified, the generic endpoint for this service will be used',
}})
  endpoint?: string = null;

Obviously, as endpoint is set as string, it throws a TS Check error in build time:
error TS2322: Type 'null' is not assignable to type 'string | undefined'.

Why isn't setting the property type correctly, whereas in the type annotation seems to be aware of it?

Thanks!

Guía de contribución

Abrir la guía de contribución

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.

Línea de trabajo

Comienza rastreando la generación de modelos TypeScript del conector OpenAPI para una propiedad con nullable: true y default: null. Compara la anotación de la propiedad generada con su tipo declarado y luego ejecuta las comprobaciones pertinentes de generación de modelos o la compilación de TypeScript; se considera terminado cuando las propiedades nullable aceptan null sin TS2322.

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

Evaluación

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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.