ESLint v3.4.0 released: https://t.co/H6bOa8ryVy
— ESLint (@geteslint) 2016年8月26日
ESLint 3.4.0 がリリースされました。
小さな機能追加といくつかのバグ修正が行われています。
質問やバグ報告等ありましたら、お気軽にこちらまでお寄せください。
ESLint 本体への変更
#6362: Scoped パッケージによるプラグインが定義するルールの指定方法が変更された
詳しくはESLintでscoped modulesとして提供されているプラグインを読み込むを参照ください。
破壊的変更を防ぐため、従来の指定方法も引き続き利用できます。
従来の指定方法は v4.0.0 がリリースされるときに削除されます。
Thanks @mizdra !
#6750: ecmaVersion
を年号形式で指定できるようになった
今まで、ecmaVersion
はリビジョン形式でしか設定できませんでした。
例えば ECMA-262 6th Edition / ECMAScript® 2015 Language Specification (俗称 ES6) の場合は、ecmaVersion: 6
です。
これを年号形式でも指定できるようになりました。
上記の場合、ecmaVersion: 2015
です。
#6710,#6780: 特定状況下での性能が改善された
ひとつは.eslintignore
利用時の性能が改善されました。
もうひとつは--cache
オプション利用時の性能が改善されました。
詳細はリンク先の Issue を御覧ください。
新しいルール
#5139: class-methods-use-this
this
を一切参照していないインスタンス メソッドを警告するルールです。
そのようなメソッドは静的メソッドか関数にすべきだ、ということらしいです。
/*eslint class-methods-use-this: error*/
// ✔ GOOD
class A {
hello() {
console.log(`hello, ${this.name}!`)
}
static hello(name) {
console.log(`hello, ${name}!`)
}
}
// ✘ BAD
class B {
hello(name) {
console.log(`hello, ${name}!`)
}
}
#6778: symbol-description
シンボル定義時に、第1引数を省略すると警告するルールです。
シンボルの第1引数はそのシンボルに関する説明であり、デバッグ時に活用できます。
賢い Minifier は Minify 時に削除してくれそうですね?
/*eslint symbol-description: error*/
// ✔ GOOD
const FOO = Symbol("this is a foo")
// ✘ BAD
const BAR = Symbol()
オプションが追加されたルール
#6751: multiline-ternary
三項演算子の?
,:
の前後どちらかに改行を指定するべきかどうかを強制するスタイル・ルールです。
今回、改行を禁止するnever
オプションが追加されました。
/*eslint multiline-ternary: [error, never]*/
// ✔ GOOD
let a = b ? c : d
// ✘ BAD
let a = b
? c
: d
#6698: valid-typeof
typeof
演算の結果と、文字列以外のものを比較するのを禁止するrequireStringLiterals
オプションが追加されました。
/*eslint valid-typeof: [error, {requireStringLiterals: true}]*/
// ✔ GOOD
typeof a === "string"
typeof b === "undefined"
// ✘ BAD
typeof a === type
typeof b === undefined