microsoft / microsoft/TypeScript

Allow type aliases to reference themselves in type argument positions

Offen
#35,017 18 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Awaiting More Feedback Suggestion
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
1 T. 19 Std.
Gemergte PRs (30 T.)
117

Beschreibung

TypeScript Version: 3.8.0-dev.20191105

Search Terms:
circular

Code

type A<T> = { x: T }
type R = A<R> // FAIL

type B = { x: B } // OK

Expected behavior:
Both cases throw no error.

Actual behavior:
Type R is rejected due to a circular reference.

Playground Link:
Link

Related Issues:
https://github.com/microsoft/TypeScript/pull/33050

Regression: https://github.com/microsoft/TypeScript/pull/33050#issuecomment-526637037

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduzieren Sie das Verhalten im verlinkten TypeScript Playground unter Verwendung der Aliase A, R und B und vergleichen Sie anschließend die gemeldeten Diagnosen zu Zirkelreferenzen mit dem erwarteten Verhalten. Als erledigt gilt die Aufgabe, wenn der Typalias R auf dieselbe Weise wie der direkt rekursive Typ B akzeptiert wird, ohne Fehler für die bestehenden Fälle einzuführen.

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
28/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.