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

302
Vistas
TypeScript + React: ¿Cómo escribo un accesorio `resto` que reúne el resto de los accesorios en un objeto y luego los distribuye a algún elemento?
function Foo({ children, ...rest }: { children: React.ReactNode; /*rest: how do I type `rest`? */ }) { return ( <span style={{ background: "red" }} {...rest}> {children} </span> ); } export default function App() { return ( <div className="App"> <Foo style={{ background: "blue" }}>Hello CodeSandbox</Foo> </div> ); }

Aquí está la demostración: https://codesandbox.io/s/how-to-type-rest-huv2z?file=/src/App.tsx:50-412

Foo se usa para anular los accesorios que acepta span . ¿Cómo escribo rest en Foo ?

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

0

No puede escribir la parte extendida del objeto directamente, pero puede agregar las propiedades necesarias con el tipo de unión ( & ).

En este caso, las propiedades adicionales que desea permitir son del tipo React.HTMLAttributes<HTMLSpanElement> . Entonces terminas con:

 function Foo({ children, ...rest }: { children: React.ReactNode; } & React.HTMLAttributes<HTMLSpanElement>) { return ( <span style={{ background: "red" }} {...rest}> {children} </span> ); }

Aparte, puede evitar escribir manualmente la propiedad React.FunctionComponent children En realidad, esto evita la definición de unión y es un poco más idiomático en el código de React.

 const Foo: React.FunctionComponent<React.HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => { // ... }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedes usar algo como esto como un tipo:

 { children: React.ReactNode; /*rest: how do I type `rest`? */ } & HTMLProps<HTMLSpanElement>
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