microsoft / microsoft/TypeScript
allowJs option with namespaces
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.3k
- Merge moyen
- 2 j 4 h
- PR mergées (30 j)
- 132
Description
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'."
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez avec les deux fichiers d’exemple et le tsconfig.json fourni en utilisant TypeScript 1.8.10, puis reproduisez l’erreur TS2300 d’identifiant dupliqué avec allowJs, namespaces et outFile. C’est terminé lorsque le code de namespace TypeScript et JavaScript peut être regroupé dans un seul fichier JavaScript sans modifier le JavaScript ni signaler l’identifiant dupliqué.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, typescript
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100