Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8691

ESLint v6.7.0

$
0
0

v6.6.0 | 次 (2019/12/21 JST)

ESLint 6.7.0がリリースされました。
小さな機能追加とバグ修正が行われています。

質問やバグ報告等ありましたら、お気軽にこちらまでお寄せください。

🏢 日本語 Issue 管理リポジトリ
👫 日本語サポート チャット
🏢 本家リポジトリ
👫 本家サポート チャット

🚀 本体への機能追加

設定ファイルのignorePatternsプロパティ

🔖 RFC022, #12274

共有設定を含む設定ファイルで、ignorePatternsプロパティが利用できるようになりました。このプロパティは.eslintignoreと同様に ESLint が無視するファイルをコントロールできます。

例(.eslintrc.yml)
ignorePatterns:-"!.eslintrc.js"-"/node_modules/"-"**/node_modules/"extends:-eslint:recommendedrules:quotes:error#...

Suggestions API

🔖 RFC030, #12384

あるエラーが複数の修正候補を持つ場合、ESLint は自動修正を行えず、修正候補を提示する手段もありませんでした。新しい Suggestions API を使うと、エディタの ESLint プラグイン等のインタラクティブな UI を通して修正候補を提示できるようになります。

今のところ、ユーザーはまだこの機能を利用できません。各検証ルールとエディタ プラグインのサポートをお待ちください。

【非推奨】個人設定ファイル

🔖 RFC032, #12426

ESLint が実行されたディレクトリに設定ファイル (.eslintrc.*) が存在しなかった場合、ESLint は OS のホーム ディレクトリにある設定ファイルを読み込みます。この機能を個人設定ファイルと呼びます。

この機能が非推奨になりました。

  • ESLint 7 以降、この機能を利用すると実行時警告が出力されるようになります。
  • ESLint 8 でこの機能は削除されます。

今後もホームディレクトリの設定ファイルを利用したい場合は、CLI オプションで明示的に指定してください。

eslint --config ~/.eslintrc.json lib

【非推奨】sourceCode#isSpaceBetweenTokens()

🔖 #12519

sourceCode#isSpaceBetweenTokens()メソッドが名前変更されました。新しい名前はsourceCode#isSpaceBetween()になります。

トークンだけでなく AST ノードを渡しても動作するので、単純に名前が間違っていたという理由です。元の名前のメソッドは非推奨メソッドとして残され、将来のメジャーリリースで削除されます (具体的な削除プランは示されていません)。

💡 新しいルール

grouped-accessor-pairs

🔖 #12331

Getter と Setter のペアを離れた場所に定義すると警告するルールです。

/* eslint grouped-accessor-pairs: error *///✘ BADconstobj1={getvalue(){},foo(){},setvalue(v){},}//✔ GOODconstobj2={getvalue(){},setvalue(v){},foo(){},}

Online Playground

no-setter-return

🔖 #12346

Setter に値を返すreturn文を書くと警告するルールです。getter-returnルールの兄弟です。

/* eslint no-setter-return: error *///✘ BADconstobj1={setvalue(v){returnthis._value},}//✔ GOODconstobj2={setvalue(v){if(v==null)returnthis._value=v},}

Online Playground

prefer-exponentiation-operator

🔖 #12360

Math.pow()関数の代わりに**演算子を使うように指示するルールです。

/* eslint prefer-exponentiation-operator: error *///✘ BADconstb1=Math.pow(2,8);constb2=Math.pow(a,b);constb3=Math.pow(a+b,c+d);constb4=Math.pow(-1,n);//✔ GOODconsta1=2**8;consta2=a**b;consta3=(a+b)**(c+d);consta4=(-1)**n;

Online Playground

no-dupe-else-if

🔖 #12504

else-if文の連鎖の中で、重複する条件式のために常にfalseになるif文を警告するルールです。

/* eslint no-dupe-else-if: error *///✘ BADif(a||b){//...}elseif(a){//...}//✔ GOODif(a||b){//...}elseif(c){//...}

Online Playground

no-constructor-return

🔖 #12529

コンストラクタの中でreturn文で値を返すことを禁止するルールです。

/* eslint no-constructor-return: error *///✘ BADclassB{constructor(){return{}}}//✔ GOODclassA{constructor(arg){if(arg==null)returnthis.value=arg}}

Online Playground

🔧 オプションが追加されたルール

no-underscore-dangleallowAfterThisConstructor

🔖 #11489

this.constructorに続くアンダーバーを許可するオプションが追加されました。

/* eslint no-underscore-dangle: [error, { allowAfterThisConstructor: true }] *///✘ BADclassB{foo(obj){obj.constructor._privateStuff}}//✔ GOODclassA{foo(obj){this.constructor._privateStuff}}

Online Playground

no-implicit-globalslexicalBindings

🔖 #11996

レキシカル スコープの宣言 class, const, letも警告するルールが追加されました。

/* eslint no-implicit-globals: [error, { lexicalBindings: true }] *///✘ BADclassB{}constb1=0letb2=0//✔ GOOD{classA{}consta1=0leta2=0}

Online Playground

no-useless-computed-keyenforceForClassMembers

🔖 #12110

クラス構文の不要な Computed Keys も警告するオプションが追加されました。

/* eslint no-useless-computed-key: [error, { enforceForClassMembers: true }] *///✘ BADclassB{["foo"](){}}//✔ GOODclassA{[foo](){}}

Online Playground

no-invalid-thiscapIsConstructor

🔖 #12308

ES5 スタイルのコンストラクタ (名前が大文字で始まる関数) をコンストラクタとして扱わないオプションが追加されました。React では関数コンポーネントに大文字で始まる関数名を使う習慣があるためです。

/* eslint no-invalid-this: [error, { capIsConstructor: false }] *///✘ BADfunctionFoo(){this.value=0}

Online Playground

✒️ eslint --fixをサポートしたルール

特になし。

⚠️ 非推奨になったルール

特になし。


Viewing all articles
Browse latest Browse all 8691

Trending Articles