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

136
Vistas
¿Puedo unificar las interfaces de accesorios para niños en una única interfaz para padres?

Estoy construyendo un juego. Tiene un componente GameResult:

 export default function GameResult({ scoresData, onPlayAgain, time, place, }: GameResultProps) { return ( <div className="c-game-result"> <Leaderboard scoresData={scoresData} /> <Stats time={time} place={place} /> <PlayAgain onClick={onPlayAgain} /> </div> );

Aquí están las interfaces para accesorios que tienen sus hijos:

  • Tabla de clasificación (muestra los datos sobre las puntuaciones de los usuarios):
 interface Props { scoresData: string[]; }
  • Estadísticas (muestra el tiempo dedicado al juego y el lugar ocupado):
 interface Props { time: string; place: string; }
  • PlayAgain (un botón para volver a jugar):
 interface Props { onClick: React.MouseEventHandler<HTMLButtonElement>; }

En el componente principal, GameResult, tengo GameResultProps que consta de todas estas interfaces:

 interface GameResultProps { scoresData: string[]; onPlayAgain: React.MouseEventHandler<HTMLButtonElement>; time: string; place: string; }

Mi pregunta es: ¿Cómo puedo unificar todas las interfaces secundarias en una sola interfaz de accesorios para un padre (GameResult), manteniendo las interfaces separadas para cada hijo?

Lo que probé:
  • Importando la interfaz de accesorios de cada niño a padre, luego escribiendo algo como esto:
 type GameResultProps = StatsProps & LeaderboardProps & PlayAgainProps

Funciona, sin embargo, parece completamente imposible de mantener. Tengo que saltar a tres archivos para entender qué accesorios debe aceptar GameResult. ¿Hay alguna manera de simplificarlo para que pueda acceder a todos los tipos de accesorios secundarios (scoresData, onPlayAgain, time, place) directamente en el padre (GameResult)?

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

0

Podrías usar una transformación de tipo :

En su componente GameResult :

 interface GameResultProps { scoresData: string[]; onPlayAgain: React.MouseEventHandler<HTMLButtonElement>; time: string; place: string; }

En Stats por ejemplo:

 type PropsStats = Pick<GameResultProps, "time" | "place">;

Documentos mecanografiados: Tipos de utilidades

Sin embargo, para simplificar, también puede crear un archivo de tipo en el que defina los tres tipos y combínelos en un GameResultProps . Como hiciste en tu publicación.

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