ESLint v6.4.0 has been released: https://t.co/AP73OF6hZe
— ESLint (@geteslint) September 14, 2019
ESLint 6.4.0
がリリースされました。
小さな機能追加とバグ修正が行われています。
質問やバグ報告等ありましたら、お気軽にこちらまでお寄せください。
🚀 本体への機能追加
特になし。
💡 新しいルール
default-param-last
🔖 #12188
仮引数の最初や途中にだけデフォルト パラメーター構文を使うことを禁止するルールです。
例
/*eslint default-param-last: error */
//✘ BAD
function f1(a = 0, b, options) { /* ... */ }
function f2(a, b = 0, options) { /* ... */ }
//✔ GOOD
function f3(a, b, options = {}) { /* ... */ }
function f4(a, b = 0, options = {}) { /* ... */ }
no-import-assign
🔖 #12252
ES Modules の import
構文で作成した変数について、変更を禁止するルールです。これらは読み取り専用なので、変更しようとすると実行時エラーになります。
例
/*eslint no-import-assign: error */
import mod, { named } from "./mod.mjs"
import * as mod_ns from "./mod.mjs"
//✘ BAD
mod = 1
named = 2
mod_ns.named = 3
mod_ns = {}
//✔ GOOD
mod.prop = 1
named.prop = 2
mod_ns.named.prop = 3
prefer-regex-literals
🔖 #12254
静的に内容が決定する new RegExp(...)
式について、正規表現リテラルを使用するように矯正するルールです。
例
/*eslint prefer-regex-literals: error */
//✘ BAD
const r1 = new RegExp("\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d");
const r2 = RegExp(`^\\d\\.$`);
const r3 = new RegExp(String.raw`^\d\.$`);
//✔ GOOD
const r4 = /\d\d\.\d\d\.\d\d\d\d/;
const r5 = /^\d\.$/;
const r6 = new RegExp(pattern);
const r7 = RegExp("abc", flags);
const r8 = new RegExp(prefix + "abc");
const r9 = RegExp(`${prefix}abc`);
const r0 = new RegExp(String.raw`^\d\. ${sufix}`);
🔧 オプションが追加されたルール
accessor-pairs enforceForClassMembers
🔖 #12192
不揃いな Getters/Setters ペアを禁止するルールに、クラス構文をサポートするオプションが追加されました。
/*eslint accessor-pairs: [error, { enforceForClassMembers: true }] */
//✘ BAD
class C {
set prop(value) { /* ... */ }
}
computed-property-spacing enforceForClassMembers
🔖 #12214
Computed プロパティのスペースを矯正するルールに、クラス構文をサポートするオプションが追加されました。
/*eslint computed-property-spacing: [error, never, { enforceForClassMembers: true }] */
const funcKey = Symbol()
//✔ GOOD
class C {
[ funcKey ]() { /* ... */ }
}
✒️ eslint --fix
をサポートしたルール
特になし。
⚠️ 非推奨になったルール
特になし。