Intellisense: deprioritise native function methods
🔍 Search Terms
native methods apply bind deprioritise autocomplete
✅ Viability Checklist
- [x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
- [x] This wouldn't change the runtime behavior of existing JavaScript code
- [x] This could be implemented without emitting different JS based on the types of the expressions
- [x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
- [x] This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
- [x] This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals
⭐ Suggestion
In autocomplete on a function, it would be great if TypeScript could prioritise extra methods/properties over the native ones.
📃 Motivating Example
Bun has some APIs that exist on a function, for example Bun.inspect() and also Bun.inspect.table. When typing Bun.inspect. the first few suggestions are more likely not as useful as the extra properties
Here I would have preferred for .custom and .table to be first in the list:
💻 Use Cases
- What do you want to use this for?: Would make it easier for the developer to discover often more useful methods and properties
- What shortcomings exist with current approaches?: Extra methods/props are more difficult to see
- What workarounds are you using in the meantime?: N/A
I would be very happy to help implement this, with some guidance as to roughly where I should look to implement it! Cheers.
This seems like an easy win. You can look at the logic that prioritizes static class members over prototypal Function members in classes:
class Foo {
alpha = "";
static beta = "";
}
Foo. // <- 'beta' appears at the top
@RyanCavanaugh Unfortunately I hit an unexpected error while trying to work on issue #61426. I've automatically reported this to GitHub.
You can ask me to try again later by unassigning and then reassigning the issue to me again.
If you want to contact GitHub about this error, please mention the following identifier so they can better serve you: b8dd0bdf-c648-4811-9ad4-65de39d13528
Sorry for the inconvenience!