microsoft / microsoft/TypeScript

Inconsistent error messages with circular base type argument

Offen
#27,458 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

I noticed here that a type argument to a base class can reference property types in the same class, so I wondered what would happen if I tried to reference an inherited property type that itself depends on the type argument. To its credit, the compiler didn't crash, but the errors I got didn't make much sense.

TypeScript Version: master (e1a4c2779f93c8389d1589e543920a61771e97ec)

Search Terms: circular self referential base extends type argument property same class lookup type

Code

class Super<T> {
  foo!: T;
}
class Sub extends Super<Sub["bar"]> {
  bar!: Sub["foo"];  // Actual: Error: "Property 'foo' does not exist on type 'Sub'."
  baz!: Sub["foo"];  // Actual: No error
}

Expected behavior: An error that indicates that circular type annotations are involved.

Actual behavior: As marked.

Playground Link: link

Related Issues: None found, but this is hard to search for.

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 die Abweichung über den bereitgestellten Playground Link mit der im Bericht angegebenen TypeScript-master-Revision und verfolgen Sie anschließend das Compilerverhalten für das zirkuläre Basistypargument. Als erledigt gilt die Aufgabe, wenn die Fälle bar und baz eine konsistente Diagnose erhalten, die darauf hinweist, dass zirkuläre Typannotationen beteiligt sind, statt der derzeit unterschiedlichen Ergebnisse.

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
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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