Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

394
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!