ESLint v5.14.0 has been released: https://t.co/APPusZMWtX
— ESLint (@geteslint) February 15, 2019
ESLint 5.14.0
がリリースされました。
小さな機能追加とバグ修正が行われました。
そろそろ 6.0.0
の足音が聞こえ始めています (リリースは Node 6 が EOL になる頃でしょう)。 EDIT(2019/04/04): 残念ながらこれは ESLint 6.0.0 に間に合いませんでした。6.0.0
では、プラグインを読み込むときに、それが書かれた設定ファイルの場所から検索するようになる予定です。共有設定がプラグインに依存しやすくなりますね。
質問やバグ報告等ありましたら、お気軽にこちらまでお寄せください。
🚀 本体への機能追加
#11288: 検証ルールの meta.schema
の型定義にて default
キーワードを利用できるようになりました。
プラグイン開発者向け。
各ルールの meta.schema
の型定義にて default
キーワードを利用できるようになりました。
これを指定すると、ユーザーが指定しなかったオプションについて、自動的に default
値が適用されます。
詳細は Ajv のドキュメント を参照ください。
#11332: eslint --init
の振る舞いが少しだけ変わりました。
質問内容が変わりました。
また、Vue.js 関連の設定を行うための選択肢が追加されました。
#11384: globals
の設定で文字列定数を使えるようになりました。
前回、globals
の設定で文字列定数を使えるようになりましたが、これを受けて、
-
readable
が読み取り専用を表すのは変じゃない? -
writeable
じゃなくてwritable
では? (実際にはどちらも正しい)
という話が出てきまして、readonly
と writable
が追加されました。
既存の定数も引き続き利用できますが、公式には readonly
と writable
が正規です。
💡 新しいルール
特になし。
🔧 オプションが追加されたルール
特になし。
✒️ eslint --fix
をサポートしたルール
#11301: prefer-destructuring
分割代入を強制するルールに自動修正機能が追加されました。
(配列は修正しないみたい)
const foo = object.foo;
// ↓↓↓↓ 自動修正 ↓↓↓↓
const {foo} = object;
⚠️ eslint --fix
をサポートしなくなったルール
#11365: prefer-spread
prefer-spread ルールの自動修正機能が削除されました。
自動修正によってコードが壊れるコーナーケースが見つかり、静的検証ではその場合を見分けることが不可能であったためです。
foo.apply(null, { length: 10 })
// ↓↓↓↓
foo(...{ length: 10 })
Function#apply
は第2引数に Array
-like オブジェクトを受け取ることが可能な一方、スプレッド構文では Iterable
なオブジェクトしか受け取れません。第2引数が変数であった場合に、それが Iterable
かどうかを見分けられないので、自動修正しないことになりました。
⚠️ 非推奨になったルール
特になし。