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

148
Visualizações
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); }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

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() ] }
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