microsoft / microsoft/TypeScript
Missing error about inability to access conflicting private properties on generic types involving intersections
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
🔎 Search Terms
accessibility private intersection never reduced conflicting
🕗 Version & Regression Information
- This changed in PR: https://github.com/microsoft/TypeScript/pull/37762 - the error was present before this PR, there was a test for it: https://github.com/microsoft/TypeScript/pull/37762/files#diff-ca0ed2db9207146d34393eb3428bf91872b53a7d882b1e010312ec6f02b9d08aL24
⏯ Playground Link
💻 Code
class A {
private a: { foo: number };
}
class B {
private a: { bar: string };
}
type X<T extends A> = [T["a"], (T | B)["a"]]; // errors
type Y<T extends A | B> = T["a"]; // error
type Z<T extends A & B> = T["a"]; // no error?
type Z_<T extends A & B> = T["a"]["b"]["c"]["d"]; // look, we can even go crazy and access deep unknown properties
type Z1<T extends A> = T["a"]; // error
type Z2<T extends B> = T["a"]; // error
type Z3<T extends A, T2 extends B> = (T & T2)["a"]; // no error?
type Z3_<T extends A, T2 extends B> = (T & T2)["a"]["b"]["c"]["d"]; // look, we can even go crazy and access deep unknown properties
🙁 Actual behavior
Z, Z_, Z3 and Z3_ have no errors
🙂 Expected behavior
I would expect the above type aliases to all contain errors
Additional information about the issue
somewhat related to https://github.com/microsoft/TypeScript/issues/62178
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 der bereitgestellten TypeScript Playground-Reproduktion und vergleiche die Aliase mit Beteiligung von Schnittmengen, privaten Eigenschaften und tiefen indizierten Zugriffen mit den Fällen, die bereits Fehler melden. Verfolge das Verhalten der Typprüfung rund um diese generischen Constraints und prüfe den zugehörigen Issue sowie den Regression-PR; fertig ist es, wenn Z, Z_, Z3 und Z3_ die erwarteten Zugriffsfehler erzeugen.
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
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 48/100