microsoft / microsoft/TypeScript
namespace / module: Duplicate declaration & needlessly remove line-breaks
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 2 T. 4 Std.
- Gemergte PRs (30 T.)
- 132
Beschreibung
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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, das Namespace- und Modulbeispiel mit TSC zu reproduzieren und das ausgegebene JavaScript zu vergleichen. Untersuche den Compilerpfad, der für die Ausgabe von Namespace/Modul verantwortlich ist, und definiere anschließend die erwartete Ausgabe für doppelte Deklarationen und beibehaltene Zeilenumbrüche. Füge Regressionstests für beide Formatierungsaspekte hinzu und überprüfe die generierte Ausgabe.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, typescript
- Bereich
- compilers
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100