microsoft / microsoft/TypeScript

intellisense in static method suggests TypeParameter of outer class

Abierto
#28,472 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

In Discussion Suggestion
Lenguaje dominante
Go
Estrellas
111k
Forks
14.3k
Merge medio
1 d 19 h
PR fusionados (30 d)
117

Descripción

TypeScript Version: 3.2.0-dev.20181101

Search Terms:

Code

class Outer<T> {
    doStuff() {
        class Inner<T> {
            static doStuff(param: /**/) {}
        }
    }
}

Expected behavior:

Intellisense does not suggest T as it will result in an error.
OR
T of Inner doesn't shadow the outer T in static members, which is therefore accessible.

Actual behavior:

Suggests T from Outer.

Playground Link: https://agentcooper.github.io/typescript-play/#code/MYGwhgzhAEDyCuAXApgJwDwBUB80DeAUNMdACYD2AyovAGa0AUAlPkSe6JDAJIB2vaLLkLtRJCIjCIAlsDJUa9BgAcwqMAFsAXNAD0AKn26WeAL5sx59udNA

Related Issues:
#28471

TypeChecker.getSymbolsInScope correctly excludes TypeParameters of the containing class for its static members. Because of that an outer scope can add a symbol with the same name.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza reproduciendo el caso genérico anidado con miembro estático del issue o de su enlace de Playground; después, inspecciona TypeChecker.getSymbolsInScope y la recopilación de símbolos de IntelliSense en torno a los miembros estáticos. Se considera terminado cuando IntelliSense ya no sugiere el T externo inaccesible, mientras se conserva el tratamiento previsto de Inner's T.

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

Evaluación

Stack tecnológico
typescript
Área
compilers, developer-experience
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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.