microsoft / microsoft/TypeScript

Proposal: allow ambient property declarations to override accessors as well

Offen
#40,220 3 Kommentare 19 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

Currently, this pattern gives an error, but arguably shouldn't:

class B {
  get p() { return B.s } // inferred p: {}
  static get s() { return {} }
}
class C extends B {
  declare readonly p: { x: 1 }
}

Expected behavior:

No error, and C.p: { x: 1 } (but is still an accessor for emit and checking purposes). That is, this should be legal:

class D extends C {
  get p() { return { x: 1 } as const }
}

Actual behavior:

Error, and C.p is a property, not an accessor.

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

Beginne damit, die Klassenbeispiele im Issue zu reproduzieren und die aktuelle Diagnose mit dem erwarteten Verhalten zu vergleichen. Die Änderung ist abgeschlossen, wenn die Ambient-Deklaration den geerbten Accessor ohne Fehler überschreiben kann, C.p den deklarierten Typ hat und D den gezeigten Accessor weiterhin deklarieren kann.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
compilers
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
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.