मैं एक समारोह के इस तरह एक वस्तु में परिभाषित किया गया है:
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);
}
}
}));
}
टाइपप्रति संकलक कि लेता है और यह उत्पादन करता है:
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 में इस लाइन:
_this.errorChecker(data, function (data)
संकलक सही ढंग से => ऑपरेटर के अपने प्रयोग देखा और निष्कर्ष निकाला कि है thisमें अपने मूल टाइपप्रति पैरेंट ऑब्जेक्ट के लिए नहीं देखें और चाहिए जो कुछ भी thisजब सफलता कॉलबैक वास्तव में कहा जाता है होता है। लेकिन, किसी कारण के लिए संकलक जादू लाइन शामिल करने के लिए भूल गया है:
var _this = this;
समारोह के शुरू में। यह एक बग है? या डिजाइन द्वारा इस है? यह सिर्फ / इस बात को पूरी तरह से नजरअंदाज कर दिया केवल इस करते हैं, तो मैं सिर्फ इतना कहना चाहता हूँ मैं गलत कर रहा हूँ, लेकिन यह आधे रास्ते यहाँ जो बनाता है मुझे लगता है कि कुछ गलत है जा रहा है।
अपडेट : अजीब तरह से इस अगर मैं में एक ही कोड को कॉपी करें, दृश्य स्टूडियो में संकलक के साथ एक समस्या हो रहा है खेल का मैदान यह काम करता है के रूप में उम्मीद।













