Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

308
Vistas
TypeScript: ajuste los parámetros de la función en Promise<T>

Intento crear un tipo que tome un tipo de función, envuelva los parámetros de la función en Promise<> y devuelva un nuevo tipo: la misma función pero con parámetros como Promise, por ejemplo:

 type PromisedFn = PromisedArgs<(a: number, b: string | number) => void> // should produce (a: Promise<number>, b: Promise<string | number>) => void

Después de horas de devanarme los sesos, solo logré lograr ese código:

 type Func = (id: number, guid: number | string) => number | string; type FuncParams = Parameters<Func>; // FuncParams = [id: string, guid: string | number] type FuncWrappedParams = { [K in keyof FuncParams as Extract<K, '0'|'1'>]: Promise<FuncParams[K]> } // { 0: Promise<number>, 1: Promise<string | number> }

Todavía el objeto indexado por números no se puede aplicar como una matriz correctamente:

 type FuncWrappedParamsArray = [...args: FuncWrappedParams[]]; type WrappedParamsFunc = (...args: FuncWrappedParamsArray) => ReturnType<Func>; let func: WrappedParamsFunc = ( id: Promise<number>, guid: Promise<number | string> ) => 'TestString'; // ERROR: // Type '(id: Promise<number>, guid: Promise<number | string>) => string' // is not assignable to type 'WrappedParamsFunc'. // Types of parameters 'id' and 'args' are incompatible. // Type 'FuncWrappedParams' is missing the following properties from type 'Promise<number>': // then, catch, [Symbol.toStringTag]

No tengo idea de cómo manejar esto.

El problema #1 es como el anterior.

Problema n.º 2: la desventaja es que debemos conocer una serie de parámetros de función con anticipación: [K in keyof FuncParams as Extract<K, '0'|'1'>] .

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda