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

145
Vistas
Escriba el tipo extendido si el tipo booleano es verdadero

Me gustaría saber si es posible extender un tipo dependiendo del valor de otro tipo.

 interface NavType { hideNav?: boolean dev?: boolean }

Me gustaría permitir el uso de hideNav solo si el dev arg es falso.

 const Navbar: React.FC<NavType> = ({ children, hideNav, dev = false }) => ( <nav> {!dev ? ( <NavDefault hideNav={!!hideNav}>{children}</NavDefault> ) : ( <NavDev>{children}</NavDev> )} </nav> )

¿Cómo puedo usar condicionales en este caso?

 // Should PASS const navArgs1: NavType = { hideNav: undefined, dev: true } const navArgs2: NavType = { hideNav: true or false, dev: false } // Should NOT PASS const navArgs3: NavType = { hideNav: true or false, dev: true }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede definir 2 tipos y dejar que las propiedades del componente sean su unión; en principio lo siguiente (mostrado como código TS Playground ):

 interface NavBase { dev: boolean; } interface DevNavType extends NavBase { dev: true; hideNav?: undefined; } interface NotDevNavType extends NavBase { dev: false; hideNav: boolean; } // This simulates your component function f(x: DevNavType | NotDevNavType) { } f({ dev: true }); // Works f({ dev: true, hideNav: undefined }); // Also works f({ dev: false, hideNav: true }); // Works too - for any boolean value of hideNav f({ dev: false }); // Compiler error f({ dev: true, hideNav: true }); // Compiler error

Notas:

  1. Realmente no necesitas la interfaz base, NavBase
  2. Es posible que desee definir un tipo para la unión, para mantener el código claro: type NavType = DevNavType | NotDevNavType
over 4 years ago · Santiago Trujillo 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