microsoft / microsoft/TypeScript
TypeScript doesn't error on late definition/initialization of variables from outside an async closure.
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 2 T. 4 Std.
- Gemergte PRs (30 T.)
- 132
Beschreibung
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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der bereitgestellten TypeScript Playground-Reproduktion und vergleiche ihr Verhalten mit den verwandten Diagnosen 2448 und 2454. Ermittle, ob der Compiler sound melden kann, dass someVar über die async closure hinweg möglicherweise nicht initialisiert ist, und validiere anschließend jede Diagnose anhand des Beispiels und bestehender verwandter Fälle.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100