Tslint: تجاهل سطر بتعليق واحد

تم إنشاؤها على ٢ يونيو ٢٠١٤  ·  31تعليقات  ·  مصدر: palantir/tslint

هل هناك طريقة لتجاهل سطر واحد ، كما هو الحال في jshint؟
لقد حاولت // tslint ignore: line ولكن هذا لا يبدو أنه يعمل.

P2 Fixed Accepting PRs Feature Request

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

لأي شخص هنا للعثور على حل بديل

/* 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 */

ال 31 كومينتر

للأسف ، ليس لدينا مثل هذا الشيء حتى الآن. يجب عليك تمكين وتعطيل الخط بشكل صريح.

كيف تقوم بتعطيل الخط؟

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;

الجحيم الدموي. لا تظهر الكلمات "منع" ولا "تجاهل" في تلك الوثائق. لا أستطيع أن أصدق مقدار البحث الذي استغرقته 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/

للأسف هذه الصفحة فقط توضح كيفية حظر استخدام هذا. لا يُظهر كيفية استخدامه بشكل صحيح أو يشرح مقدار تجاهل 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 ! 🤖

🔒 تم إقفال هذه المشكلة لمنع المزيد من المناقشات غير الضرورية. شكرا لك! 👋

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