-
Notifications
You must be signed in to change notification settings - Fork 13.2k
Open
Labels
Domain: JavaScriptThe issue relates to JavaScript specificallyThe issue relates to JavaScript specificallyHelp WantedYou can do thisYou can do thisPossible ImprovementThe current behavior isn't wrong, but it's possible to see that it might be better in some casesThe current behavior isn't wrong, but it's possible to see that it might be better in some cases
Milestone
Description
JavaScript Intellisense doesn't detect types of properties defined in async constructors
Summary
A popular asynchronous constructor pattern in JavaScript is using an async IIFE in the constructor which returns this at the end. E.g.
constructor() {
return (async () => {
this.#x = 42;
this.y = 42;
return this;
})();
}However, VSCode Intellisense does not infer the types for properties defined in such a constructor.
Steps to reproduce
- Open a blank JavaScript, and paste in the following code:
class Class1 {
#x;
y;
constructor() {
this.#x = 42;
this.y = 42;
}
}
class Class2 {
#x;
y;
constructor() {
return (async () => {
this.#x = 42;
this.y = 42;
return this;
})();
}
}- Hover over
yinClass1and observe the tooltip:(property) Class1.y: number - Hover over
yinClass2and observe the tooltip:(property) Class2.y: any
Does this issue occur when all extensions are disabled?: Yes
- VS Code Version: 1.97.0
- OS Version: Windows 11
Rayzeq
Metadata
Metadata
Assignees
Labels
Domain: JavaScriptThe issue relates to JavaScript specificallyThe issue relates to JavaScript specificallyHelp WantedYou can do thisYou can do thisPossible ImprovementThe current behavior isn't wrong, but it's possible to see that it might be better in some casesThe current behavior isn't wrong, but it's possible to see that it might be better in some cases