microsoft / microsoft/TypeScript

Typescript Autocompletion Not Working For Function Overloads

Abierto
#26,892 9 comentarios 6 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Experience Enhancement Help Wanted Suggestion
Lenguaje dominante
Go
Estrellas
111k
Forks
14.4k
Merge medio
1 d 19 h
PR fusionados (30 d)
117

Descripción

From @MartinLoeper on August 29, 2018 13:27

  • VSCode Version: 1.25.1 1dfc5e557209371715f655691b1235b6b26a06be x64
  • OS Version: Linux version 4.15.0-32-generic Ubuntu

Steps to Reproduce:
I provided a small example of the issue (see screenshot below).

  1. Create a function with two overloads
  2. Try to invoke this function
  3. Once you typed in the first parameter, the IDE recognizes that it matches the first overload's signature.
    However, the auto-completion suggest the literals for both overloads.

I expect the auto-completion to show "BW" and "BY" only!

_005

Does this issue occur when all extensions are disabled?: Yes

The code:


export class MomentHolidayFactory {
    public a(input: Germany, second: GermanState): string;
    public a(input: Austria, second: AustrianState): string;

    public a(input: Country, second: State): string {
        return "test";
    }

    public holidays() {
        this.a("de", ""
    }
}

type Country = Germany & Austria;
type Germany = "de" | "De" | "DE" | "germany";
type Austria = "Au" | "au" | "AU" | "austria";

type State = GermanState & AustrianState;
type GermanState = "BW" | "BY";
type AustrianState = "Stmk" | "Vbg";

Copied from original issue: Microsoft/vscode#57509

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 con el ejemplo de overload de TypeScript del issue y reproduce el comportamiento de completado después de introducir el primer argumento. Sigue el punto de entrada del completado del language service para funciones sobrecargadas; se considera terminado cuando las sugerencias después de "de" contienen solo "BW" y "BY", en lugar de literales de ambos overloads, y se ha añadido una prueba de regresión en el área de pruebas correspondiente.

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

Evaluación

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