microsoft / microsoft/TypeScript
Disallow newline after `as` after function instantiation
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.4k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
🔎 Search Terms
as newline ASI function type parameters spec difference
🕗 Version & Regression Information
- This is the behavior in every version I tried
⏯ Playground Link
💻 Code
let x = foo < 2 > as
F.getter
🙁 Actual behavior
It is parsed as
let x = foo<2> as F.getter;
🙂 Expected behavior
It should be parsed as
let x = (foo < 2) > as;
F.getter;
Additional information about the issue
The linked code is valid JavaScript code, and it would be great if tsc could parse as such.
I know that TS is not in general a syntactic superset of JavaScript, but both Babel and SWC already parse this example (when in TS mode) according to JS semantics. We could change our parsers, but it would be better if this ambiguity could be solved in tsc.
cc @kdy1
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
Reproduziere den Parsing-Unterschied mithilfe des verlinkten TypeScript Playground und des bereitgestellten Codebeispiels und verfolge anschließend, wie der TypeScript-Parser as über einen Zeilenumbruch nach der Instanziierung einer Funktion verarbeitet. Als abgeschlossen gilt die Arbeit, wenn das Beispiel dem erwarteten JavaScript/ASI-Parsing folgt und das bestehende TypeScript-Parsing-Verhalten weiterhin durch Tests abgedeckt ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, typescript
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 42/100