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

396
Vistas
Cómo devolver el tipo genérico en la función de flecha React-TypeScript

Solo trato de hacer un gancho personalizado en reaccionar. todo funciona bien, pero ahora quiero agregar el tipo de retorno de mi respuesta para eso, he hecho que mi función de gancho sea una función de flecha genérica mecanografiada. Ahora, cuando trato de devolver este tipo genérico de mis ganchos, aparece un error dentro de mis ganchos.

Escriba '{ nombre: cadena; }' no se puede asignar al tipo 'T'. Se podría crear una instancia de 'T' con un tipo arbitrario que podría no estar relacionado con '{ nombre: cadena; }'.

manos

 type httpRequest = { URL: string | undefined; Method: 'Get' | 'Post' | 'Put' | 'Delete'; RequestBody: any; }; type httpResponse<T> = { loading: boolean; data: T; error: any; }; const useHttpRequest = <T>(request: httpRequest): httpResponse<T> => { console.log(); return { loading: false, data: { name: 'Sabban' }, error: {} }; }; export default useHttpRequest;

Componente

 import React from 'react'; import useHttpRequest from '../hooks/use-http'; const Blog = () => { const httpRequest = useHttpRequest<{ name: string }>({ URL: '', Method: 'Get', RequestBody: {}, }); return ( <div className="container"> <div className="card"> <div className="card-body"> <h5 className="card-title">Card title</h5> <h6 className="card-subtitle mb-2 text-muted">Card subtitle</h6> <p className="card-text"> Some quick example text to build on the card title and make up the bulk of the card's content. </p> </div> </div> </div> ); }; export default Blog;

Solo quiero devolver el tipo exacto que obtengo del componente.

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

0

Es porque el sistema de tipos no puede asegurar lo que será sustituido por T dentro de la frase de declarar.

En su ejemplo, los datos se vuelven a sintonizar como { name: 'Sabban' } lo cual no es seguro porque la función se puede llamar como useHttpRequest<{ fullname: string }> .

Parece que está creando un cliente Http, creo que está bien forzar { name: 'Sabban' } as unknown as T porque es imposible asegurar lo que se obtendrá de la respuesta externa.

O, si puede enumerar todas las API y todos los tipos de respuesta, puede definir un método para cada punto final. Que es como construir un cliente SDK. Ejemplo: patio de recreo

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