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

255
Vistas
Tengo un problema al pasar un argumento a una función en mecanografiado.

Soy nuevo en Typescript y tengo problemas para pasar argumentos a una función en Typescript. Esta función se llama cuando represento un formulario modal. Pero termino obteniendo dos errores:

"El argumento de tipo 'Promise<AxiosResponse>' no se puede asignar al parámetro de tipo '(data: Record<string, unknown>) => Promise'".

"Escriba 'Promise<AxiosResponse>' no coincide con la firma '(data: Record<string, unknown>): Promise'".

 function openModal(activity) { const data = ref({ name: activity.name, }) formRender.render(activity, updateActivity(activity.id,{name:data.value.name})) }

Esta sería la función:

 export function updateActivity(id: number, data: Record<string, unknown>) { return http.patch(`/${id}`, { name: data.name }) }

FormRender:

 export function FormRender<T extends Record<string, unknown>>(formName: string) { return { render(formAttributes: T | Record<string, unknown>, service: (data: T) => Promise<unknown>) { dialog({ component: FormRender, componentProps: { formName, formAttributes, service }, }) },
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

export function updateActivity(id: number, data: Record<string, unknown>) { return http.patch(`/${id}`, { name: data.name }) }

Esta función devuelve Promise<AxiosResponse<any, any>> . Es una función async , lo que significa que tendrá que await el resultado para obtener el valor devuelto por la solicitud HTTP.

Para obtener los datos de este tipo, primero debe esperarlos y luego obtener la propiedad de data de la respuesta de axios:

 export async function updateActivity(id: number, data: Record<string, unknown>) { const response = await http.patch(`/${id}`, { name: data.name }) return response.data // This may require a JSON.parse or further prep depending on what the API returns }

Ahora que el argumento del service se escribe como una función, debería poder pasar una función que llame a este método:

 formRender.render(activity, (data) => updateActivity(activity.id, {name:data.value.name}))

Aquí hay un ejemplo de trabajo sin errores de tipo

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