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

130
Visualizações
Atributo de interfaz de sobrecarga de mecanografiado

Imagina que tengo un montón de opciones de carga útil como:

 interface IOne { type: 'One', payload: { name: string, age: number } } interface ITwo { type: 'Two', payload: string } declare type TBoth = IOne | ITwo;

Entonces puedo recibir uno de los dos anteriores como parámetro. Quiero que el mecanografiado pueda reconocer los parámetros de cada tipo al usar un switch , por ejemplo.

El problema que tengo es cuando intento crear el objeto.

 const value = req.body?.message; // just an example const test: TBoth = { type: value ? 'One' : 'Two, // <--- Now it should autocomplete/suggest the rights parameters based on this attribute. }

Yo obtengo:

Los tipos de propiedad 'tipo' son incompatibles. Escriba '"Uno" | "Dos"' no se puede asignar al tipo '"Dos"'.

¿Es posible?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede reducir los tipos de uniones discriminadas de esta manera:

 const doSomething = (test: TBoth) => { if(test.type === `One`) { // hover the below `test` with VSCode you will see: // (parameter) test: IOne handleIOne(test) } else { // hover the below `test` with VSCode you will see: // (parameter) test: ITwo handleITwo(test) } }

Ver un ejemplo en vivo

about 4 years ago · Juan Pablo Isaza 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