microsoft / microsoft/TypeScript
@ts-ignore on an import that gets redefined strips the import from output
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.4k
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 117
Descripción
TypeScript Version: 3.7.5 and 3.8.0
Search Terms:
- ts-ignore remove import
- ts-ignore strip import
Code
// @ts-ignore: Local Foo override
import Foo from "foo";
declare const Foo: {
bar(): number;
}
Foo.bar();
Expected behavior:
JS output should probably be:
import Foo from "foo";
Foo.bar();
Actual behavior:
JS output is:
Foo.bar();
Related Issues: None so far
Additional remarks: We are aware of other ways to type the foo module but in this particular case the foo override needs to be done in the file using it. As far as we tried, adding a ts-ignore is the only way to make ts understand that we want to redefine the module.
Now, this seems to move the declaration site from the import to the the declare statement and that has the effect to mark the import site as unused, since the import is unused, ts strips it.
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
Reproduce el comportamiento del código TypeScript 3.7.5/3.8.0 proporcionado y del enlace al Playground, y luego rastrea la decisión del compilador sobre la eliminación de imports para un import seguido de una redeclaración. Se considera terminado cuando el JavaScript emitido conserva el import tal como se muestra en la salida esperada y este caso cuenta con cobertura de pruebas.
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
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100