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

164
Vistas
Texto mecanografiado: cómo hacer que la interfaz maneje objetos únicos o múltiples

Tengo una pregunta con respecto a la extensión de una interfaz para permitir campos duplicados. Básicamente necesito crear 2 solicitudes. Una solicitud maneja un evento, la otra solicitud maneja 2 eventos.

Ejemplo:

Una solicitud de evento:

 events[ { "name": "EventOne" "description": EventOne Description } ]

Solicitud de dos eventos:

 events[ { "name": "EventOne" "description": EventOne Description }, { "name": "EventTwo" "description": EventTwo Description } ]

Entonces tengo un método y luego envío una solicitud así:

 export function performRequest(params: IEvent) { return request(test) .post(`/events`) .send(params);

Entonces tengo dos interfaces. Uno trata con un solo objeto de solicitud (IEventDetails), el otro extiende IEventDetails y maneja la solicitud de dos eventos que se conoce como IMultiEventDetails:

 interface IEvent { events: [IEventDetails]; } interface IEventDetails { name?: string; description?: string; } interface IMultiEventDetails extends IEventDetails{ name?: string; description?: string; }

Ahora, cuando invoco mis solicitudes, funciona para el evento único, pero no para el evento múltiple, ya que me da el error:

 Source has 2 element(s) but target allows only 1

Cuando llamo mis solicitudes:

A continuación funciona:

 const response = await performRequest({ events[{ name: "EventOne" description: "EventOne Description" }] ...

Debajo de los errores:

 const response = await performRequest({ events[{ name: "EventOne" description: EventOne Description }, { name: "EventTwo" description: EventTwo Description }] ...

Esto tiene sentido ya que no estoy llamando a IMultiEventDetails. Estoy tratando de evitar crear un método para llamar a un solo evento y otro método para llamar a múltiples eventos. Entonces, ¿hay alguna manera de llamar a IEvent y hacer que pueda manejar solicitudes de eventos únicos o múltiples?

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

0

[IEventDetails] especifica una matriz con un elemento

IEventDetails[] especifica una matriz de tipo IEventDetails , por lo que cualquier cantidad de IEventDetails está bien

 interface IEvent { events: IEventDetails[]; } interface IEventDetails { name?: string; description?: string; }
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