microsoft / microsoft/TypeScript
TypeScript doesn't error on late definition/initialization of variables from outside an async closure.
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.3k
- Merge moyen
- 1 j 19 h
- PR mergées (30 j)
- 117
Description
TypeScript Version: 4.0-beta and Nightly (as of writing)
Search Terms: async closure variable initialization
Code
async function doSomething(): Promise<void> {
const x = setTimeout(() => {
const a = someVar + 1;
}, 5000)
await doSomethingSlowly();
const someVar = 5;
}
Expected behavior:
There should be an error on const a = someVar + 1; since someVar may not have been initialized.
Actual behavior:
No error/warning with any settings that I could find.
Playground Link: link
Related Issues:
Comments
I see folks hit this every so often and it feels like something the TypeScript compiler could help warn against, in a similar way that 2448 and 2454 error.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par la reproduction fournie dans TypeScript Playground et comparez son comportement avec les diagnostics associés 2448 et 2454. Déterminez si le compilateur peut signaler de manière fiable que someVar peut ne pas être initialisée à travers la async closure, puis validez tout diagnostic par rapport à l’exemple et aux cas associés existants.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100