Böyle bir nesne tanımlı bir işlevi vardır:
connect(callback?: (connected: bool) => void) {
$.ajax(this.url + /connect, $.extend(true, {}, this.ajaxSettings, {
success: (data) => {
this.errorChecker(data, (data) => {
if (callback != null) {
callback(data);
}
});
},
timeout: this.timeout,
error: () => {
if (callback != null) {
callback(false);
}
}
}));
}
Typescript derleyici o alır ve bu üretir:
VAS.prototype.connect = function (callback) {
$.ajax(this.url + /connect, $.extend(true, {
}, this.ajaxSettings, {
success: function (data) {
_this.errorChecker(data, function (data) {
if(callback != null) {
callback(data);
}
});
},
timeout: this.timeout,
error: function () {
if(callback != null) {
callback(false);
}
}
}));
};
js bu çizgiyi Not:
_this.errorChecker(data, function (data)
Derleyici => operatörü benim kullanımını fark etti ve sonucuna doğru olan thisbenim orijinal typescript üst nesnenin bakın ve olmamalıdır ne olursa olsun thisbaşarı geri arama aslında çağrıldığında olur. Ama nedense derleyici sihirli çizgiyi içerecek şekilde unuttu:
var _this = this;
fonksiyonun başında. Bu bir hata mı? Ya da bu tasarım gereğidir? Sadece / bu şey tamamen _this göz ardı ederse, ben yanlış yapıyorum demek sadece istiyorum, ama yarı yolda beni buraya şeylerin yanlış olduğunu düşünüyorum yapar gidiyor.
Güncelleme : garip bir şekilde bu İçine aynı kodu kopyalayıp, Visual Studio derleyici ile bir sorun gibi görünüyor oyun alanı beklendiği gibi çalışır.













