microsoft / microsoft/TypeScript
namespace / module: Duplicate declaration & needlessly remove line-breaks
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.4k
- Merge moyen
- 1 j 19 h
- PR mergées (30 j)
- 117
Description
I wonder why TSC re-declare a global var after each namespace or module block.
namespace OurName {
export var isAndroid = true;
export var isWinPhone = false;
// do something
var checkCookies = function() {
return true;
}
}
namespace OurName {
export var HTML = '<b>hello</b>';
export var state = [1, 2, 3];
export var addToCart = function() {
return true;
}
}
namespace OurName {
var xyz = false;
// do something
export module Office {
var isClosed = false;
}
}
Above code is translated to:
var OurName;
(function (OurName) {
OurName.isAndroid = true;
OurName.isWinPhone = false;
// do something
var checkCookies = function () {
return true;
};
})(OurName || (OurName = {}));
var OurName;
(function (OurName) {
OurName.HTML = '<b>hello</b>';
OurName.state = [1, 2, 3];
OurName.addToCart = function () {
return true;
};
})(OurName || (OurName = {}));
var OurName;
(function (OurName) {
var xyz = false;
// do something
var Office;
(function (Office) {
var isClosed = false;
})(Office = OurName.Office || (OurName.Office = {}));
})(OurName || (OurName = {}));
It also removes the line-breaks that help me keeping the code easier to look. I am porting our production ES5 code to TypeScript, so I have to carefully re-check the output of TSC. This behaviour makes my work even harder.
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 par reproduire l’exemple de namespace et de module avec TSC et comparer le JavaScript émis. Inspectez le chemin du compilateur responsable de l’émission des namespace/modules, puis définissez la sortie attendue pour les déclarations dupliquées et les sauts de ligne préservés. Ajoutez une couverture de régression pour ces deux aspects de formatage et vérifiez la sortie générée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, typescript
- Domaine
- compilers
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100