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

100
Views
Equivalente genérico variado mecanografiado para el valor de retorno

Tengo una función que acepta argumentos de tipo genérico y devuelve una tupla de matrices de los mismos tipos, sin embargo, esta función puede aceptar una cantidad dinámica de esos genéricos. Algo como:

 function myFunction<T1>(): [Array<T1>] {...} function myFunction<T1, T2>(): [Array<T1>, Array<T2>] {...} function myFunction<T1, T2, T3>(): [Array<T1>, Array<T2>, Array<T3>] {...}

y así.

¿Cómo defino un solo tipo T genérico y un valor de retorno equivalente para poder pasar tantos genéricos diferentes como quiera?

He intentado hacerlo de una manera simple como:

 function myFunction<T extends any[]>(): Array<Array<T[number]>> {...}

Sin embargo, eso pierde información sobre qué tipo se almacena en qué índice.

También probé algo similar a esto:

 function myFunction<T extends any[]>(): {[key in keyof T]: Array<T[key]>} {...}

Sin embargo, llamar a keyof T en una matriz devuelve otras propiedades además de índices como "longitud", etc., lo que también lo hace un poco problemático durante la asignación. Dando como resultado errores similares a este:

 TS2322: Type 'string[][]' is not assignable to type '{ [x: number]: string[]; length: string[]; toString: string[]; toLocaleString: string[]; pop: string[]; push: string[]; concat: string[]; join: string[]; reverse: string[]; shift: string[]; slice: string[]; sort: string[]; splice: string[]; ... 25 more ...; at: string[]; }'.
about 4 years ago · Juan Pablo Isaza
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!