loopbackio / loopbackio/loopback-next
Invalid TS models when properties are nullable
Nadie ha tomado este issue todavía.
- 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
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- 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