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

107
Visualizações
Inferencia de tipo para el objeto constante proporcionado como parámetro de función que acepta un tipo asignado

Encontré un comportamiento extraño de TypeScript y me preguntaba cómo solucionarlo.

Tengo la siguiente función, que acepta un solo parámetro opts .

 type Opts<E extends string | number> = { [P in E]?: string }; function setOpts(opts: Opts<O>): void { // does stuff with <opts> }

La idea del tipo Opts<O> es que crea un tipo que acepta un objeto con claves de tipo O y valores de tipo string . Por ejemplo, si tengo un grupo de colores, digamos BLUE , RED y GREEN , obtendría lo siguiente:

 let colors: Opts<'BLUE'|'RED'|'GREEN'> = { BLUE: 'Blue color', RED: 'Red color', GREEN: 'Green color' }

Ahora, hasta aquí, todo funciona bien. Cuando llamo a mi función como se muestra a continuación, aparece un error mecanografiado, ya que YELLOW no es una clave aceptable. Eso es lo que espero y lo que quiero.

 setOpts({ BLUE: 'b', RED: 'r', GREEN: 'g', YELLOW: 'y' })

Sin embargo, por alguna razón (que no entiendo), cuando defino una constante con exactamente el mismo valor que el anterior y luego paso esa constante como un parámetro de mi función, TypeScript se compila sin error. Obviamente, no quiero eso.

 const param = { BLUE: 'b', RED: 'r', GREEN: 'g', YELLOW: 'y' }; setOpts(param);

¿Me equivoco al suponer que TypeScript debería inferir un tipo para param . ¿Hay alguna manera de forzar tal comportamiento?

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