単純なlex互換のパーサジェネレータはこのパターンを使用するため、この条件について具体的に質問します。
私はこれが大好きで、デバッグ時にreturnステートメントをスローするだけですが、jshint(自動的に実行)が文句を言います
@Zugwalt私がやったことは、ユーザー指定のコードをif(true)
ブロックでラップするようにジェネレーターを変更することでした。
例えば:
switch(foo) {
/* ... */
case bar:
if(true) {
/* insert code here */
}
break;
/* ... */
}
これは中かっこなしのコードと同等であり、jshintは文句を言いません:)
これがこの機能より古いかどうかはわかりませんが、ソースとJSLintのドキュメントを見ているだけで、これでもうまくいく可能性があります
/*jshint -W027*/
ドキュメントには、sytaxはどこでもこれらの警告をオフにすると書かれているので、関数スコープがそれらで機能するかどうかはわかりません。 また、これの別のユースケースはプリプロセッサの使用です。 jshintオプションを設定するのに時間がかかる場合は、前処理の前後にリントできると便利です。 これまで、今述べたアプローチを試してみます。
更新:関数スコープです。
最も参考になるコメント
@Zugwalt私がやったことは、ユーザー指定のコードを
if(true)
ブロックでラップするようにジェネレーターを変更することでした。例えば:
これは中かっこなしのコードと同等であり、jshintは文句を言いません:)