Tslint: Игнорировать строку с одним комментарием

Созданный на 2 июн. 2014  ·  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 Комментарий

К сожалению, у нас пока такого нет. вы должны включить и отключить линию явно.

Как отключить линию?

Для всех, кто здесь может найти обходное решение

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

принятие PR за это. вот недавнее несколько связанное изменение, которое позволяет отключать комментарии // вместо /* (хотя по-прежнему требуются два комментария): https://github.com/palantir/tslint/pull/1134

Я постараюсь добраться до этого сегодня вечером, если это не будет слишком сложно, надеюсь, PR сегодня вечером тоже

👍 Давайте внимательно проследим за 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 для единообразия

У меня это работает сейчас, и я просто прохожу некоторую очистку от коммитов, прежде чем создавать PR. Стратегия заключалась в том, чтобы скрыть варианты -line и -next-line в их эквивалентных полностью выраженных переключателях комментариев. Это выполняется путем отслеживания начальной позиции строки (для переключателей -line ) и выполнения упреждающего просмотра конца следующей строки (для переключателей -next-line ). Кажется, что они работают довольно хорошо и имеют минимальные побочные эффекты, поскольку они просто действуют как псевдоним для более подробного формата.

Просто примечание, прежде чем я приведу свой PR в порядок, из-за того, как работает отключенный интервальный код, вы не сможете сделать что-то вроде этого

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

Кровавый ад. В этой документации нет слов «подавлять» или «игнорировать». Я не могу поверить, сколько времени потребовалось в Google, чтобы привести меня к этой проблеме, прочитать все вышесказанное, только чтобы обнаружить, что это поддерживаемая, задокументированная функция, но соответствующие ключевые слова отсутствуют в документации, поэтому это невозможно для Google. Вам нужно клонировать все репо и отправить для этого PR или есть более быстрый способ предложить исправления для файлов .md?

@pbarranis, вы можете создать новый билет с этим как запрос функции. Если они не внесут изменений, следующим шагом может стать PR.

Кстати, вы также можете сделать это в той же строке:

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/
И я согласен с приведенным выше комментарием, в котором спрашивалось, ПОЧЕМУ на этой странице не упоминаются слова «подавлять» или «игнорировать», чтобы их можно было легко найти при использовании Google?
К вашему сведению, эта страница теперь говорит, что 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 устарел 👈 и вам следует перейти на typescript-eslint ! 🤖

🔒 Эта проблема заблокирована, чтобы предотвратить дальнейшие ненужные обсуждения. Спасибо! 👋

Была ли эта страница полезной?
0 / 5 - 0 рейтинги