قمنا بتغيير سلوك قاعدة الفاصلة المنقوطة للسماح بحذف الفاصلة المنقوطة اللاحقة بعد وظائف عضو الفئة المرتبطة:
class Foo {
public renderFoo = () => {
return null;
}
^ right here
}
أقترح أننا في الواقع _ban_ فاصلة منقوطة في ذلك الموقع في TSLint 4.0. يمكننا دعم الوظيفة القديمة بخيار جديد allow-bound-class-methods
.
لست مقتنعًا بأن هذه بحاجة إلى 4.0 ، لكنني لن أؤذي الحصول عليها أيضًا. يبدو أنه خيار دقيق قليلاً ، لكنني لست مقتنعًا تمامًا أنه يستحق التعقيد الإضافي
فقط كعنصر ملاحظات (لست متأكدًا مما إذا كان هذا هو المكان المناسب؟) ، لقد تعثرنا للتو عبر هذا ، وفوجئنا جدًا بهذا.
ربما لا أفهم تمامًا الأساس المنطقي وراء ذلك ، ولكن على وجه الخصوص ، يبدو أن الفاصلة المنقوطة لعلامات tslint غير ضرورية في هذا الموضع (أي لا تقبل فقط تركها) تبدو مربكة.
يمكنك استعادة السلوك القديم باستخدام الخيار ignore-bound-class-methods
. أردنا أن نكون أكثر إبداء الرأي مع التكوين الافتراضي وأن نجعل طرق الفئات المقيدة تبدو مثل طرق الفئات العادية في معظم أكواد TS.
نعم ، كنت أحسب الكثير. كنت أتوقع أن tslint
يتطلب الأمر خارج الصندوق تلك الفاصلة المنقوطة ، أو يخطئ أكثر في جانب التناسق ، أو يتجاهل المشكلة ، مع إضافة هذا الخيار مرة أخرى في أعمالنا.
حاولت أن أجعل هذا يتوقف عن إلقاء الأخطاء في انتليج
حاولت إزالة الفاصلة المنقوطة الموجودة خلف وظائف سهم الفئة ، ثم تلقيت هذا التحذير:
حاولت تمكين الخيار مثل هذا:
لكني حصلت على هذه النتيجة:
حاولت تمكين الخيار مثل هذا:
ولكن بعد ذلك يتوقف عن البحث عن الفواصل المنقوطة معًا.
إصدار tslint: 4.4.2
إصدار TS: 2.1.5
نسخة انتليج: 2016.3
نظام التشغيل: windows 10 x64
بالنسبة للأشخاص الذين يأتون إلى هذا الموضوع ويبحثون عن تكوين tslint الصحيح (كما فعلت أنا) - سيكون بناء الجملة الصحيح لهذا هو:
"فاصلة منقوطة": [true، "always"، "ignore-bound-class-Methods"]
popstr نعم ، هذا ما أستخدمه أيضًا.
"semicolon": [true, "always", "ignore-bound-class-methods"]
لقد أنشأت # 3216 لأن التجاهل فكرة سيئة من حيث الاتساق ، والقاعدة بدون الخيار ignore-bound-class-methods
لا تزال عربات التي تجرها الدواب كما اكتشفت.
التعليق الأكثر فائدة
بالنسبة للأشخاص الذين يأتون إلى هذا الموضوع ويبحثون عن تكوين tslint الصحيح (كما فعلت أنا) - سيكون بناء الجملة الصحيح لهذا هو:
"فاصلة منقوطة": [true، "always"، "ignore-bound-class-Methods"]
انظر: https://palantir.github.io/tslint/rules/semicolon/