microsoft / microsoft/TypeScript
allowJs option with namespaces
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
I am currently trying to put the compiler option "allowJs" to use. My goal is to convert an existing JavaScript application into TypeScript step by step. The application does not use (external) modules, so I'm converting the JavaScript namespaces into real TypeScript namespaces, but I'm running into "duplicate identifier" errors as outlined below. Shouldn't it be possible to combine TypeScript and JavaScript using the same namespace? Maybe I'm doing something wrong or this is not intended, but I expected this to work.
TypeScript Version: 1.8.10
Code
File 1:
namespace myapp {
export var c1 = 5;
}
File 2:
var myapp;
(function (myapp) {
myapp.c2 = 4;
})(myapp || (myapp = {}));
tsconfig.json
{
"compilerOptions": {
"allowJs": true,
"outFile": "dist/appBundle.js"
}
}
Expected behavior:
Bundling the compiled code of file 1 and the code of file 2 without modifications into a single JavaScript file.
Actual behavior:
The compilation is done, but the compiler throws an error: "error TS2300: Duplicate identifier 'myapp'."
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 los dos archivos de ejemplo y el tsconfig.json proporcionado usando TypeScript 1.8.10 y, a continuación, reproduce el error TS2300 de identificador duplicado con allowJs, namespaces y outFile. Se considera terminado cuando el código de namespaces de TypeScript y JavaScript se pueda agrupar en un único archivo JavaScript sin modificar el JavaScript ni informar del identificador duplicado.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, 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
- 45/100