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

237
Visualizações
Necesita inferir el segundo tipo genérico del primero. Se podría crear una instancia de 'SequenceItem' con un tipo arbitrario que podría no estar relacionado con 'T'
const SORT_VALUES = { a: -1, b: 1, } as const type sortWrapperReturn = -1 | 1 | 0 export const sortWrapper = <T extends string, SequenceItem = T>({ a, b, sequence, }: { a: T b: T sequence?: SequenceItem[] }): sortWrapperReturn => { if (a === b) return 0 if (sequence) { const aIndex = sequence.indexOf(a) const bIndex = sequence.indexOf(b) if (aIndex === -1) return SORT_VALUES.b if (bIndex === -1) return SORT_VALUES.a if (aIndex > bIndex) return SORT_VALUES.b if (aIndex < bIndex) return SORT_VALUES.a } return 0 }

Necesito heredar el segundo tipo genérico del primero para que el tipo de los parámetros 'a' y 'b' se infiera al parámetro 'secuencia'

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

0

a y b deben poder asignarse a SequenceItem .

SequenceItem = T no significa que T sea asignable a SequenceItem . Para solucionarlo, debe asegurarle a TypeScript que el argumento de la sequence es un conjunto de T . Considere este ejemplo:

 const SORT_VALUES = { a: -1, b: 1, } as const type sortWrapperReturn = -1 | 1 | 0 export const sortWrapper = <T extends string>({ a, b, sequence, }: { a: T b: T sequence?: T[] }): sortWrapperReturn => { if (a === b) return 0 if (sequence) { const aIndex = sequence.indexOf(a) const bIndex = sequence.indexOf(b) if (aIndex === -1) return SORT_VALUES.b if (bIndex === -1) return SORT_VALUES.a if (aIndex > bIndex) return SORT_VALUES.b if (aIndex < bIndex) return SORT_VALUES.a } return 0 }

Patio de juegos

O bien, puede usar intersection con T[] :

 export const sortWrapper = <T extends string, Sequence = T>({ a, b, sequence, }: { a: T b: T sequence?: Sequence[] & T[] // < ---- change }): sortWrapperReturn => { // ... code } sortWrapper({ a: 'a', b: 'b', sequence: ['a', 'b', 'c'] }) // ok

Patio de juegos

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