Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

142
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda