microsoft / microsoft/TypeScript

Rename doesn't work on declaration whose name is a string literal

Offen
#57,026 0 Kommentare 5 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Domain: LS: Refactorings Experience Enhancement Help Wanted Suggestion
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")

Playground link

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

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, 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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.