Skip to content

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

Open
@sandersn

Description

@sandersn

Follow up to #56052, which was fixed by #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 ...

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions