ストーリー:はESLint内のすべての宣言された変数をキャッチ
現在、私は変数があるすべての場所をキャッチする特定ESLint
ルール(link)を開発していますその影ビルトイン分度器グローバル変数(browser
またはelement
など)。ここで
は、ルールが現時点でどのように見えるかです:あなたが見ることができるように
module.exports = function (context) {
var protractorGlobals = [
'browser',
'protractor',
'element',
'by',
'$',
'$$'
]
function checkVariables (node) {
var variables = context.getDeclaredVariables(node)
for (var i = 0; i < variables.length; ++i) {
if (protractorGlobals.indexOf(variables[i].name) !== -1) {
context.report(node, 'Unexpected Protractor built-in global variable shadowing')
}
}
}
return {
'VariableDeclaration': checkVariables,
'FunctionDeclaration': checkVariables,
'FunctionExpression': checkVariables,
'CatchClause': checkVariables
}
}
、私は、すべての変数と関数の宣言を探している関数式、catch句と、以下の場合をカバーする文を切り替えています:
質問:
は、私は新しいヴァリアーすべての場所をカバーしていますbleは現在のスコープに導入されていますか? より一般的な方法は、推測せずにコード内の任意の場所に変数を宣言し、それらを探す場所を明示的に定義しますか?
これがあなたと関連しているかどうかは不明ですが、文字列関数作成関数constructors、eval、setTimeout、およびsetIntervalをチェックしたい場合があります。これが簡単にeslintで可能かどうかは確かではありません。 – nils