Instantiation expression inside nested classes produces unexpected circular reference error
@jakebailey arbeitet bereits daran.
Seit 22.2.2023.
Bewertung
Dieses Issue wurde noch nicht bewertet.
Beschreibung
Bug Report
🔎 Search Terms
instantiation expression nested class
🕗 Version & Regression Information
- This is the behavior in every version I tried
⏯ Playground Link
Playground link with relevant code
💻 Code
class A<T = number> {
//static { type _<T extends A = A> = 0 }
//^ will work when uncomment it?
value!: T;
child!: InstanceType<typeof A.B<A<T>>>
static B = class B<T extends A = A> {
parent!: T;
}
}
var a = new A
a.child.parent.value
// ^?
🙁 Actual behavior
Shows an error 'child' is referenced directly or indirectly in its own type annotation..
However, when uncommenting // static {...} it will work only in playground.
In VSCode it still shows the error above.
🙂 Expected behavior
a.child.parent.value is number
Workaround
A workaround is remove the default type for class B<T>. The code below works well, also, only in playground. In my VSCode(5.0.0-dev.20230216) it still breaks unfortunately.
class A<T extends number = number> {
value!: T;
child!: InstanceType<typeof A.B<A<T>>>
static B = class B<T extends A> {
parent!: T;
}
}
var a = new A
a.child.parent.value
// ^? number
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.4k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus microsoft/TypeScript
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
microsoft/TypeScript#64322 · 2 Kommentare · 1 Reaktion · 2 zugewiesene Personen ·
-
Possible Improvement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
microsoft/TypeScript#64278 · 1 Kommentar · 1 Reaktion ·
-
Docs
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
microsoft/TypeScript#64118 · 1 Kommentar ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
microsoft/TypeScript#64094 ·
-
Docs
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
microsoft/TypeScript#63959 · 5 Kommentare ·
Alle Issues in microsoft/TypeScript
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 92/100
milvus-io/birdwatcher#545 ·
-
kind/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
kubernetes-sigs/prow#953 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
caddyserver/caddy#8046 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
jaegertracing/jaeger#9588 ·