هل هناك طريقة لتجاهل سطر واحد ، كما هو الحال في jshint؟
لقد حاولت // tslint ignore: line ولكن هذا لا يبدو أنه يعمل.
للأسف ، ليس لدينا مثل هذا الشيء حتى الآن. يجب عليك تمكين وتعطيل الخط بشكل صريح.
كيف تقوم بتعطيل الخط؟
https://github.com/palantir/tslint#tslint - أعلام القاعدة
لأي شخص هنا للعثور على حل بديل
/* tslint:disable */ - Disable all rules for the rest of the file
/* tslint:enable */ - Enable all rules for the rest of the file
على سبيل المثال
/* tslint:disable */ window['foo']= window['bar']; /* tslint:enable */
هل تم إجراء أي تحقيق في تنفيذ ميزة مشابهة كما هو موضح أعلاه؟
patsissons ما الميزة بالضبط؟ من الممكن حاليًا تمكين / تعطيل سطر واحد مع تعليقين.
ستكون الميزة أقل تعطيلًا للخط المطول. ESLint
على طرق متعددة لعمل تعطيل قاعدة سطر واحد.
على سبيل المثال،
// eslint-disable-next-line rule-name
var x; // eslint-disable-line rule1 rule2
تعتبر طريقة الالتفاف رائعة نظرًا لتعطيل التكرار للقاعدة المعقدة ، ولكن تميل المضمنة (أو السطر التالي) إلى ترك الكود أقل تلوثًا (هذا رأيي بالطبع ، ولكن ربما ليس هذا غير معقول).
هذا صاخب:
/* tslint:disable */ window['foo']= window['bar']; /* tslint:enable */
هذا هو أفضل بكثير:
var x; // eslint-disable-line rule1 rule2
أو حتى:
var x; // tslint:disable
حقيقة أنه تعليق سطر يعني أنه سيعطل هذا السطر فقط على ما أعتقد.
أو في أسوأ الأحوال:
var x; // tslint:disable-line
قبول العلاقات العامة لهذا الغرض. إليك تغيير حديث مرتبط إلى حد ما سمح بتعطيل تعليقات //
بدلاً من /*
(لا يزال هناك تعليقان مطلوبان): https://github.com/palantir/tslint/pull/1134
سأحاول الوصول إلى هذه الليلة ، إذا لم يكن الأمر صعبًا للغاية ، آمل أن أقوم بالعلاقات العامة الليلة أيضًا
👍 دعنا نتابع عن كثب ESLint هنا:
someCode(); // tslint:disable-line
// tslint:disable-next-line
someCode();
و
someCode(); // tslint:disable-line:rule1 rule2
// tslint:disable-next-line:rule1
someCode();
هذا هو بالضبط ما أود تحقيقه: +1:
على الرغم من ذلك ، من أجل الوضوح فقط ، لا تستخدم ESLint النقطتين ، وأسلوبها هو كما يلي:
// eslint-disable-next-line rule1, rule2
someCode();
سأفترض أنك تفضل أن نلتزم بأسلوب TSLint الذي قمت بتضمينه أعلاه (النقطتين ولا توجد فاصلات تفصل القواعد).
👍 دعنا نتمسك بأسلوب TSLint من أجل الاتساق
لدي هذا العمل الآن وأنا أجرى بعض عمليات التنظيف قبل إنشاء العلاقات العامة. كانت الإستراتيجية تتمثل في إخفاء المتغيرات -line
و -next-line
في مفاتيح تبديل التعليقات المعبر عنها بالكامل. يتم ذلك عن طريق تتبع موضع بدء السطر (لمحوّلات -line
) وإجراء نظرة مستقبلية لنهاية السطر التالي (لمحوّلات -next-line
). يبدو أن هذه تعمل بشكل جيد ولها آثار جانبية قليلة لأنها تعمل ببساطة كاسم مستعار للتنسيق الأكثر تفصيلاً.
مجرد ملاحظة قبل أن أحصل على العلاقات العامة الخاصة بي بالترتيب ، نظرًا للطريقة التي يعمل بها رمز الفاصل الزمني المعطل ، فلن تتمكن من القيام بشيء مثل هذا
// tslint:disable-next-line:quotemark variable-name
var AAAaA = 'test' // tslint:enable-line variable-name
أنا بصراحة لا أتوقع أبدًا أن يقوم شخص ما بشيء من هذا القبيل ، لكنني أردت فقط أن أشير إليه هنا. لا يزال بإمكانك القيام بالتداخل القياسي مثل هذا
// tslint:disable
var AAAaA = 'test' // tslint:enable-line:quotemark
// tslint:enable-next-line:variable-name
var AAAaA = 'test'
// tslint:enable
سؤال حول التنفيذ ، هل هذا يعمل؟
/**
* this is a very long line and violate max-line-length. // tslint:disable-line:max-line-length
*/
لا ، لم يتم تحليل تعليقات التبديل بهذه الطريقة ، يجب تنسيقها بشكل صحيح. أعتقد في مثالك ، أنك ستضع تعليق تعطيل سطر واحد خارج التعليق متعدد الأسطر وهذا يجب أن يعمل كما هو متوقع.
شكرا للتوضيح ، حصلت عليه.
lijunle بمجرد إعادة النظر في
أيا من الأعمال المذكورة أعلاه
هل تتحدثون عن ميزات مقترحة أم تم تنفيذها بالفعل؟
صعب المتابعة
@ phil123456 https://github.com/palantir/tslint#rule -flags
// tslint:disable-next-line <optional rule identifier>
var foo = 123;
^ تم نقل الرابط هنا: https://github.com/palantir/tslint/blob/master/docs/usage/rule-flags/index.md
الجحيم الدموي. لا تظهر الكلمات "منع" ولا "تجاهل" في تلك الوثائق. لا أستطيع أن أصدق مقدار البحث الذي استغرقته googling ليقودني إلى هذه المشكلة ، وقراءة جميع الأشياء المذكورة أعلاه ، فقط لأجد أنها ميزة مدعومة وموثقة ، ولكن الكلمات الرئيسية المناسبة ليست في المستندات ، لذلك من المستحيل على Google. هل يجب عليك استنساخ الريبو بالكامل وتقديم PR لذلك ، أم أن هناك طريقة أسرع لاقتراح إصلاحات لملفات .md؟
pbarranis ، يمكنك عمل تذكرة جديدة باستخدام ذلك
بالمناسبة ، يمكنك أيضًا القيام بذلك على نفس الخط:
console.log("poop"); // tslint:disable-line no-console
على الأقل اعتبارًا من [email protected].
هذا لا يعمل مع قواعد مثل ordered-imports
//@ts-ignore
https://palantir.github.io/tslint/rules/
//@ts-ignore
https://palantir.github.io/tslint/rules/
للأسف هذه الصفحة فقط توضح كيفية حظر استخدام هذا. لا يُظهر كيفية استخدامه بشكل صحيح أو يشرح مقدار تجاهل tsLint عند استخدام ذلك. لا تعرف سبب عدم ذكره في هذه الصفحة التي تشرح كيفية قمع القواعد https://palantir.github.io/tslint/usage/rule-flags/
وأنا أتفق مع التعليق أعلاه الذي يسأل لماذا لا تذكر هذه الصفحة كلمة "منع" أو "تجاهل" حتى يمكن العثور عليها بسهولة عند استخدام جوجل؟
لمعلوماتك ، تشير هذه الصفحة الآن إلى أن TSLint يتم تشغيله في EOL هذا العام: https://github.com/palantir/tslint#tslint -rule-flags
آه ، تم دمج tslint في النهاية (ليس بعد) في eslint ، لذلك أعتقد أن هذا لطيف.
النقطة هي أن tslint
يدعم ميزة تجاهل السطر التالي.
مثال:
// tslint:disable-next-line
أو
// tslint:disable-next-line:rule1 rule2 rule3
لمزيد من التفاصيل والمثال ، راجع https://palantir.github.io/tslint/usage/rule-flags/
🤖 بيب بوب! 👉 تم إهمال TSLint 👈 ويجب عليك التبديل إلى print-eslint ! 🤖
🔒 تم إقفال هذه المشكلة لمنع المزيد من المناقشات غير الضرورية. شكرا لك! 👋
التعليق الأكثر فائدة
لأي شخص هنا للعثور على حل بديل
على سبيل المثال
/* tslint:disable */ window['foo']= window['bar']; /* tslint:enable */