microsoft / microsoft/TypeScript
Missing error about inability to access conflicting private properties on generic types involving intersections
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.3k
- Merge medio
- 2g 4h
- PR unite (30g)
- 132
Descrizione
### 🔎 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
https://www.typescriptlang.org/play/?ts=6.0.0-dev.20250817#code/MYGwhgzhAECC0G8BQ1oAcBOBLAbmALgKbRgBci0AZgPbXkB2ArgLYBGhG0AvgNxJdIkoSDABCiFOmx4iJcgmiswGchHzZ6Ac258BSfAE80xABoAeACrRCADyL0AJjFgA+aAF5oAbQteARGB+ALoANNAAFFYAPtCiAJT+gUFBPNAA9GnWGBjUGBCChsbQAJqW1naEjs7QMaJunr4BwakZWTkYBUbEAFpltvZOcNAAZLH10I1JLZn01G25APydRd0A+n0VVUOjdR4TicH+rId+wCcOzemZILQA1mEA7sTAYPTWOJXQmnPAGGAAXgYSI4SMBgIQoNAHIRCGhoIx6LdZg83phqMYMPgsBDlj0AIwbAbOcaTS6tDjtXHQboAJkJlUGuwaBxSV3mHX0XWpAGZ6VtYGELDTykSxntIiMJjSEk1Wa1ZuylpyVtz1lZ+gznILhRqtkyIlZRkKZUkjiczkF-Bc5dc7o9nq93p9vtBfgCga8HKDwZDobD4YjkaichisTigA
### 💻 Code
```ts
class A {
private a: { foo: number };
}
class B {
private a: { bar: string };
}
type X = [T["a"], (T | B)["a"]]; // errors
type Y = T["a"]; // error
type Z = T["a"]; // no error?
type Z_ = T["a"]["b"]["c"]["d"]; // look, we can even go crazy and access deep unknown properties
type Z1 = T["a"]; // error
type Z2 = T["a"]; // error
type Z3 = (T & T2)["a"]; // no error?
type Z3_ = (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
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia con la riproduzione fornita in TypeScript Playground e confronta gli alias che coinvolgono intersezioni, proprietà private e accessi indicizzati profondi con i casi che segnalano già errori. Traccia il comportamento del controllo dei tipi attorno a questi vincoli generici e rivedi l’issue correlata e la PR di regressione; il lavoro è completato quando Z, Z_, Z3 e Z3_ producono gli errori di accessibilità previsti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 48/100