Есть ли способ игнорировать одну строку, как в jshint?
Я пробовал // tslint ignore: line, но, похоже, это не сработало.
К сожалению, у нас пока такого нет. вы должны включить и отключить линию явно.
Как отключить линию?
https://github.com/palantir/tslint#tslint -rule-flags
Для всех, кто здесь может найти обходное решение
/* 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;
^ Ссылка перемещена сюда: https://github.com/palantir/tslint/blob/master/docs/usage/rule-flags/index.md
Кровавый ад. В этой документации нет слов «подавлять» или «игнорировать». Я не могу поверить, сколько времени потребовалось в 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/
//@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 ! 🤖
🔒 Эта проблема заблокирована, чтобы предотвратить дальнейшие ненужные обсуждения. Спасибо! 👋
Самый полезный комментарий
Для всех, кто здесь может найти обходное решение
например
/* tslint:disable */ window['foo']= window['bar']; /* tslint:enable */