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

208
Vistas
Cómo asignar const asíncrono a la propiedad del objeto en mecanografiado/javascript

En el siguiente ejemplo, estoy tratando de asignar funciones asincrónicas constantes como Promesas a una propiedad de un objeto principal, por lo que se puede acceder de forma perezosa en otro código, como fn: función asincrónica getItem() en el ejemplo.

Pero al asignar const-s a la propiedad 'subItems' recibo un error:

Al tipo 'ItemI' le faltan las siguientes propiedades del tipo 'Promise': luego, catch, finalmente, [Symbol.toStringTag]ts(2739)

¿Podría explicar lo que me estoy perdiendo y cómo corregirlo? Gracias.

 // interface for each item object interface ItemI { id: number, name: string, subItems?: Promise<ItemI>[] } // item object 1 const item_A01: ItemI = { id: 1, name: 'item_A01' } // item object 2 const item_A02: ItemI = { id: 2, name: 'item_A02' } // async constant - Promise of each item object async const async_item_A01 = (): ItemI => { return item_A01 }; async const async_item_A02 = (): ItemI => { return item_A02 }; // parent item with the Promissed item objects async const parentItem: ItemI = { id: 0, name: 'parentItem', // ERROR: // Type 'ItemI' is missing the following properties // from type 'Promise<ItemI>': // then, catch, finally, [Symbol.toStringTag] ... subItems: [async_item_A01(), async_item_A02() ] } // function to work with an actual item // from the Promissed / async constants // by the provided index async function getItem (itemIndex: number) { const resolved_item: ItemI = await parentItem.subItems[itemIndex]; console.log('my resolved item is:', resolved_item.name); }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Es la función la que debe ser async , no la const . Además, el tipo de devolución debe ser Promise<ItemI> :

 const async_item_A01 = async (): Promise<ItemI> => { return item_A01 }; const async_item_A02 = async (): Promise<ItemI> => { return item_A02 };

Además, elimine async aquí:

 const parentItem: ItemI = { id: 0, name: 'parentItem', subItems: [ async_item_A01(), async_item_A02() ] }
over 4 years ago · Santiago Trujillo Denunciar
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