microsoft / microsoft/TypeScript
Missing 'used before declaration' error with IIFE
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: 3.2.1
Search Terms:
Code
class C {
a = (() => this.b)();
b = '';
}
Expected behavior:
Error Property 'b' is used before its initialization.
Control flow analysis inlines IIFEs, but it seems the use-before-declare check doesn't.
Actual behavior:
No error
Playground Link: https://agentcooper.github.io/typescript-play/#code/MYGwhgzhAEDC0G8BQ1XTNAvNAFDglFgHzQAuAFgJYQB0ARvgQNwpp1bQDknLAvkA
Related Issues: Found while investigating https://github.com/Microsoft/TypeScript/issues/29125
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 dem TypeScript 3.2.1-playground-Beispiel aus dem Issue und vergleiche sein Verhalten mit dem des verwandten Issues #29125. Verfolge, wie die Control-Flow-Analyse die IIFE im Vergleich zur Prüfung auf Verwendung vor der Initialisierung behandelt. Als abgeschlossen gilt die Aufgabe, wenn die gezeigte Klasse den erwarteten Fehler "Property 'b' is used before its initialization" erzeugt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 35/100