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

129
Visualizações
¿Es posible inferir un tipo genérico desde el literal de la plantilla de cadena interna?

El siguiente fragmento de código hace exactamente lo que pretendo saber con una advertencia: me gustaría evitar tener que explicitar el genérico que necesita.

 type EventGroup = { actions: "run" | "save" other: "bla" } export type EventType<T extends keyof EventGroup> = `${T}/${EventGroup[T]}` const t: EventType<"actions"> = "actions/run"

Me gustaría que Typescript infiriera que:

 `actions/run` -> valid `actions/save` -> valid `actions/bla` -> NOT valid `other/bla` -> valid

Que es lo que hace este código pero con un genérico explícito.

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

0

Puede hacer eso con un tipo asignado y luego tomar una unión de los valores de:

 export type EventType = { [Key in keyof EventGroup]: `${Key}/${EventGroup[Key]}` }[keyof EventGroup];

Prueba de la validez del tipo:

 const t1: EventType = "actions/run"; // valid const t2: EventType = "actions/save"; // valid const t3: EventType = "actions/bla"; // NOT valid const t4: EventType = "other/bla"; // valid

Enlace del patio de recreo

Hay dos partes en eso, primero el tipo mapeado:

 type EventType = { [Key in keyof EventGroup]: `${Key}/${EventGroup[Key]}` }

que evalúa como:

 type EventType = { actions: "actions/run" | "actions/save"; other: "other/bla"; }

Luego usamos [keyof EventGroup] al final para extraer solo los valores de las actions y other como una unión.

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