Typescript: مشكلة في تصحيح أخطاء "هذا" في VS2013 عند استخدام lambdas

تم إنشاؤها على ٤ أبريل ٢٠١٥  ·  3تعليقات  ·  مصدر: microsoft/TypeScript

أقوم بتحويل بعض أكواد TypeScript البرمجية من استخدام التقاط "هذا" ذي الترميز الثابت:

var _this = this;
var querySucceeded = function(data){
    this.doSomething(data);
}
var test = this.executeQuery().then(function(data){
    _this.querySucceeded(data);
});

لاستخدام لامدا:

var querySucceeded = function(data){
    this.doSomething(data);
}
var test = this.executeQuery().then((data) => {
    this.querySucceeded(data);
});

يقوم TypeScript بتجميع JS في شيء يشبه كتلة التعليمات البرمجية الأولى ويعمل كل شيء بشكل جيد في المتصفح. تكمن المشكلة عند التصحيح في Visual Studio. عندما أقوم بفحص "هذا" بعد لامدا ، فإنه يعرض خصائص النافذة ، بدلاً من سياق الفصل الدراسي.

إذا قمت بتصحيح الأخطاء مباشرة في المتصفح ، فسيعرض السياق المحلي كما ينبغي. هل هذه مشكلة معروفة؟ ربما هناك مشكلة في التعيينات بين ملف JS وملف TS؟

أنا أستخدم VS2013 Update 4 و TypeScript 1.4.

Needs Proposal Suggestion Visual Studio

التعليق الأكثر فائدة

لا تزال مشكلة في vs code مع es5 ووظيفة السهم ، إنه أمر مزعج حقًا يجب معالجته بأولوية أعلى.

ال 3 كومينتر

المشكلة هي أن مصحح الأخطاء لا يعرف شيئًا عن الكتابة المطبوعة ، كل ما يعرفه هو جافا سكريبت وخريطة المصدر. يسرد ملف الخريطة المصدر فقط تعيينات العبارات من المصدر (.ts) إلى الهدف (.js) ، لكنه لا يتتبع المتغيرات المعاد تسميتها (على سبيل المثال _ هذا).

نحن على علم بهذه المشكلة ، وهي مشكلة طويلة الأمد. أصبحت المشكلة أكثر إلحاحًا الآن لأننا نقوم بالمزيد من عمليات إعادة الكتابة هذه باستخدام تغييرات اسمها ، والتثبيت ، والتدمير ، وتغييرات الخصائص المحسوبة.

عندما يتم إصلاح 2859 ، يجب أن "يعمل فقط" في أدوات مطور IE ، أي أنه سيخفي الترجمة. ومع ذلك ، لم يتم إجراء الأسلاك في Visual Studio في الوقت الحالي.

لا تزال مشكلة في vs code مع es5 ووظيفة السهم ، إنه أمر مزعج حقًا يجب معالجته بأولوية أعلى.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات