microsoft / microsoft/TypeScript
JS Intellisense not detecting ES6 Symbol properties assigned after Initialization
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.3k
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 117
Descripción
- VS Code Version: 1.54.3
- OS Version: Windows 10 Pro, version 20H2, build 19042.804
Steps to Reproduce:
- Initialize a Symbol
- Initialize an empty object literal
- Assign the object a function, using the symbol as its property
The following code also demonstrates some of the steps to reproduce:
const symKey = Symbol();
/** @namespace */
var objLiteral = {
literalPublicFn1() {},
/**
* You found the secret fn!
*/
[symKey]() {},
};
/** @namespace */
var objAssigned = {};
/** @memberof objAssigned */
objAssigned.laterPublicFn1 = function() {};
/**
* You found the secret fn!
* @memberof objAssigned
* */
objAssigned[symKey] = function () {}
For both objects, the string properties are picked up by Intellisense and autocompleted as expected. However, Intellisense only provides function info for the symbol on the objLiteral object, where the symbol property was declared as part of the literal. For the objAssigned object, where the symbol property was assigned after initialization, no function info is provided.
In other words, intellisense works when calling objLiteral[symKey]() but not when calling objAssigned[symKey]()
Does this issue occur when all extensions are disabled?: Yes
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con la reproducción en JavaScript del issue e investiga cómo el servicio de lenguaje de TypeScript gestiona las propiedades Symbol calculadas asignadas después de la inicialización del objeto. Compara IntelliSense para objLiteralsymKey y objAssignedsymKey, y considera completado el issue cuando ambos proporcionen la información de la función que se muestra para el caso literal.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, typescript, vscode
- Área
- devtools
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100