Microsoft/TypeScript
Auf GitHub ansehenRename doesn't work on declaration whose name is a string literal
Open
#57.026 geöffnet am 11. Jan. 2024
Domain: LS: RefactoringsExperience EnhancementHelp WantedSuggestion
Repository-Metriken
- Stars
- (48.455 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 6T 17h) (9 gemergte PRs in 30 T)
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 ...