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

111
Vistas
Mecanografiado: crea una función donde el argumento valida el objeto en función del componente pasado

Estoy buscando una manera de hacer que una función tome dos argumentos: un componente funcional de reacción y el accesorio correcto para ese componente. El problema es que se puede pasar cualquier componente y, por lo tanto, cualquier componente podría tener su propia interfaz. Mi objetivo es que el segundo argumento sea consciente del tipo en función del primer argumento.

Lo que tengo hasta ahora.

 interface ComponentAProps { hello: string } interface ComponentBProps { world: string } interface someFunction{ (component: React.FC<any>, props: ???) => void } // Two components as an example. const ComponentA = ({ hello }: ComponentAProps) => return <p>hello</p> const ComponentB = ({ world }: ComponentAProps) => return <p>world</p> // This function takes in the component, and an object representing the props const someFunction: someFunction = (ComponentA, { hello: 'hello' }) => void const someFunction: someFunction = (ComponentB, { world: 'world' }) => void // This should give a type error const someFunction: someFunction = (ComponentB, { hello: 'hello' }) => console.log(props)

Creo que podría hacer algo como

 props: <ComponentAProps | ComponentBProps>

pero el problema es que podría haber componentes del Componente C,D,E...Z.

Esencialmente, esta función debería validar que el segundo argumento pasado son los accesorios de cualquier componente que esté en arg 1

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

0

Para resolver el problema central de hacer que el segundo argumento valide los accesorios del componente, podemos usar TypeScript Genrics

En lugar de validar los accesorios en función del componente pasado, podemos validar los accesorios diciéndole a la función qué accesorios esperar. Cómo se implementaría en el código OP

 interface ComponentAProps { hello: string } interface ComponentBProps { world: string } // This says says that a type can be passed through to the second arg function someFunction<Type>(component: React.FC<any>, props: Type) { return void } // Two components as an example. const ComponentA = ({ hello }: ComponentAProps) => return <p>hello</p> const ComponentB = ({ world }: ComponentAProps) => return <p>world</p> // These will not produce type Error someFunction<ComponentAProps>(ComponentA, { hello: 'hello' }) someFunction<ComponentBProps>(ComponentB, { world: 'world' }) // This will give a type error because we are telling the function // that the 2 arg needs to be of type ComponentBProps someFunction<ComponentBProps>(ComponentA, { hello: 'hello' })
about 4 years ago · Juan Pablo Isaza Denunciar

0

En tiempo de ejecución, no hay información de tipo . Lo que puede hacer es crear algún tipo de esquema para sus objetos y luego validarlos contra ese esquema. Uno de los paquetes más populares para eso es ajv.

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