Microsoft/TypeScript

Add missing awaits when destructuring properties from a promisified type

Open

#57.831 aperta il 18 mar 2024

Vedi su GitHub
 (2 commenti) (0 reazioni) (0 assegnatari)TypeScript (6726 fork)batch import
Experience EnhancementHelp WantedSuggestion

Metriche repository

Star
 (48.455 star)
Metriche merge PR
 (Merge medio 6g 17h) (9 PR mergiate in 30 g)

Descrizione

🔎 Search Terms

missing await destructuring codefix promise promisified members properties

🕗 Version & Regression Information

  • This is the behavior in every version I tried

⏯ Playground Link

https://www.typescriptlang.org/play?#code/JYOwLgpgTgZghgYwgAgKoGdrIN4ChnLAAmAXMumFKAOYDc+yIcAthGRVSHbgL665EICADZwoKGAFcQCMMAD2IZNQhgM0ABQBKMgAUo85sEwAedVAB89XHHQBPGciky5i5JAracDBIoqMWFABeZVVzbQA6AHoAKgBGGKjrAl8Qf2xkWIAmROQeZBCVNUwobXoeIA

💻 Code

interface User {
  id: string;
  name: string;
}

declare function getUser(): Promise<User>;

async function test() {
  const name = getUser()./*1*/;

  const { /*2*/  } = getUser();
}

🙁 Actual behavior

with preferences.includeCompletionsWithInsertText at marker 1 we get completions for id and name and the line gets auto-fixed for us:

const name = (await getUser()).name

Nothing like that happens at marker 2 - no completions, no auto-fixes

🙂 Expected behavior

It would be cool if the second would work like the first one in this regard. It could go from:

  const { /*2*/  } = getUser();

to

  const { name } = await getUser();

Additional information about the issue

it's a feature request but the bug report template just worked the best here 😉

Guida contributor