Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

168
Vistas
Evolución de las propiedades de un objeto usando TypeScript

Tengo la situación en la que tengo una entidad de dominio que puede estar en un estado "recién nacido" y luego en un estado más maduro, una vez que se obtienen más datos de un tercero.

Un ejemplo sencillo sería:

 interface Props { name: string; idFrom3pAPI?: string; }

Cuando llega una solicitud a mi sistema, me gustaría crear el objeto de dominio, pero faltarán algunos datos, luego pasaré este objeto a un servicio/repositorio que obtendrá las claves faltantes y devolverá el objeto completo.

El problema con el tipo anterior es que cuando trato de pasar este objeto al ORM, no se verificará el tipo ya que idFrom3pAPI no puede estar indefinido.

Básicamente, estoy buscando un tipo de unión condicional o discriminado, donde pueda establecer una bandera en el estado de los objetos, y el verificador de tipos estaría feliz de tener ahora los datos correctos.

¡Cualquier ayuda apreciada!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Es posible que no esté leyendo su pregunta correctamente, sin embargo, estoy de acuerdo con su intento inicial donde idFrom3pAPI es opcional si de hecho puede existir o no. Sin embargo, si su ORM no puede aceptar que idFrom3pAPI sea opcional, entonces esta solución debería funcionar.

Primero, elimine el opcional de idFrom3API

 interface Props { name: string; idFrom3pAPI: string; }

Luego puede usar el tipo de utilidad Partial cuando lo pasa al "servicio/repositorio" y ese "servicio/repositorio" devolvería el tipo completo. El "servicio/repositorio" debe aceptar Partial y devolver Props . La variable que recibe la solicitud inicial sería Partial<Props> y una nueva variable de tipo Props recibiría el resultado de su "servicio/repo"

Entonces su ORM puede aceptar Props como se definió anteriormente sin el opcional.

Otra opción sería crear un tipo diferente y luego restringirlo al tipo que quiere el ORM.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda