jshintのように、1行を無視する方法はありますか?
// 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正確にはどの機能ですか? 現在、2つのコメントを含む1行を有効/無効にすることができます。
この機能は、冗長な行の無効化が少なくなります。 ESLint
は、1行のルールに違反する複数の方法があります。
例えば、
// 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
それが行コメントであるという事実は、それがその1行を無効にするだけであることを意味すると思います。
または最悪の場合:
var x; // tslint:disable-line
このためのPRを受け入れます。 これは、無効にするために/*
コメントの代わりに//
を許可する最近のやや関連する変更です(ただし、2つのコメントが必要です): https :
今夜も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はあなたの例を再考するだけですが、私の説明は実際には多少間違っていたと思います。 1行の無効化では、意図した結果を達成できないと思います。 パーサーは、複数行のコメント全体を適切に無効にするために連絡を取ることができないと思います。 複数行コメントのルールを無効にするには、コメントをスイッチペアでラップする必要があります。
上記のいずれも機能しません
機能の提案について話しているのですか、それともすでに実装されているのですか?
フォローするのは難しい
@ phil123456 https://github.com/palantir/tslint#rule -flags
// tslint:disable-next-line <optional rule identifier>
var foo = 123;
^リンクはここに移動しました: https :
血まみれの地獄。 そのドキュメントには、「抑制する」または「無視する」という言葉はありません。 この問題につながるのにどれだけのグーグルが必要だったか信じられません。上記のすべてを読んで、サポートされ、文書化された機能であることがわかりましたが、適切なキーワードがドキュメントにないため、Googleでは不可能です。 リポジトリ全体のクローンを作成してそのPRを送信する必要がありますか、それとも.mdファイルの修正を提案するより迅速な方法がありますか?
@pbarranisは、機能リクエストとしてそれを使用して新しいチケットを作成できます。 彼らが変更を加えない場合は、PRを行うことが次のステップになる可能性があります。
ちなみに、同じ行でそれを行うこともできます:
console.log("poop"); // tslint:disable-line no-console
これは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 :
ああ、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 */