Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

240
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!