microsoft / microsoft/TypeScript
Rename doesn't work on declaration whose name is a string literal
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.4k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
Follow up to https://github.com/microsoft/TypeScript/issues/56052, which was fixed by https://github.com/microsoft/TypeScript/pull/56061. That fix means that rename from string literal values that are contextually typed by the type of the string-literal-named property do work. But renames on the actual property declaration still don't.
interface I {
"Prop 1 Foo": string
// ^-- rename here doesn't work
}
declare const fn: <K extends keyof I>(p: K) => void
fn("Prop 1 Foo")
As before, if you use constant with a literal type, renaming the literal type does work:
declare const indirect: "Prop 1 Foo"
interface I {
[indirect]: string
}
// ... same as before ...
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 damit, den Fehler beim Umbenennen einer Deklaration anhand des TypeScript-Beispiels und des Playground-Links zu reproduzieren, und vergleiche ihn anschließend mit den im Issue beschriebenen funktionierenden Fällen mit kontextbezogenen String-Literals und indirekten Konstanten. Erledigt ist die Aufgabe, wenn das Umbenennen der Deklaration einer durch ein String-Literal benannten Eigenschaft konsistent funktioniert und die bestehenden funktionierenden Fälle erhalten bleiben.
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
- Klar beschrieben
- Anfängerfreundlichkeit
- 45/100