Skip to content

Support "jump to" for literal record keysΒ #54937

Open
@donaldpipowitch

Description

@donaldpipowitch

Suggestion

πŸ” Search Terms

  • jump to record key

βœ… Viability Checklist

My suggestion meets these guidelines:

  • This wouldn't be a breaking change in existing TypeScript/JavaScript code
  • This wouldn't change the runtime behavior of existing JavaScript code
  • This could be implemented without emitting different JS based on the types of the expressions
  • This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
  • This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion

Record keys should support "Jump to definition" actions.

πŸ“ƒ Motivating Example

type Something = { field: string };

type Somethings<Keys extends string> = Record<Keys, Something>;

type ContainerOfSomethings = Somethings<'a' | 'b'>;

const container: ContainerOfSomethings = {
    a: { field: 'a' },
    b: { field: 'b' }
};

console.log(container.a);
                     // ^---- "Jump to" should bring me to line 5 where 'a' is listed

Playground Example

πŸ’» Use Cases

Enhance Developer Experience.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Help WantedYou can do thisPossible ImprovementThe current behavior isn't wrong, but it's possible to see that it might be better in some cases

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions