Dies ist ein sehr konstruiertes Beispiel, aber nehmen wir an , wir eine Variable erstellen _thisirgendwo in einer Klasse - Funktion.
class Person {
constructor (public name : string) {}
changeName(name) {
var _this = {};
(() => {
this.name = name;
})();
}
}
Dies wird nicht wie erwartet funktionieren , wenn wir den Aufruf changeNameFunktion , weil der betreffende Teil des kompilierten Code wie folgt aussieht:
var _this = this;
var _this = {};
(function () {
_this.name = name;
})();
Das ist schlecht Javascript: Wir haben zwei varErklärungen gegenseitig überschreiben. Der _thisvom Compiler erstellt wird durch meine überschrieben _this.
Soweit ich sehen kann, ist dieses Verhalten nicht in der Typoskript spec angegeben.
Warum sollten sie in Konflikt geraten? Kann nicht der Compiler erkennen , wenn ich eine Variable erstellt haben Namen _thisund das automatisch generierte ein etwas anderes nennen, wie _this2meine Variablen und die Compiler generierten diejenigen aufeinander aus Trampeln zu halten?













