microsoft / microsoft/TypeScript

JavaScript Intellisense doesn't detect types of properties defined in async constructors

Abierto
#61,137 0 comentarios 1 reacción 0 asignados Ver en GitHub
Domain: JavaScript Help Wanted Possible Improvement
Lenguaje dominante
Go
Estrellas
111k
Forks
14.3k
Merge medio
2 d 4 h
PR fusionados (30 d)
132

Descripción

# 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.
```javascript
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
1. Open a blank JavaScript, and paste in the following code:
```javascript
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;
})();
}
}
```
2. Hover over `y` in `Class1` and observe the tooltip: `(property) Class1.y: number`
3. Hover over `y` in `Class2` and 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

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Reproduce el problema en VS Code con los ejemplos proporcionados de Class1 y Class2 y compare los tipos mostrados al pasar el cursor con las extensiones deshabilitadas. Rastree el procesamiento de JavaScript IntelliSense para constructores asíncronos en el servicio de lenguaje de TypeScript y, después, añada cobertura de regresión; se considera terminado cuando Class2.y se infiere como number, igual que Class1.y.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
javascript, typescript, vscode
Área
developer-experience, tooling
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
42/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.