ESLint v3.15.0 has been released: https://t.co/DCNGeHDeLk
— ESLint (@geteslint) 2017年2月3日
ESLint 3.15.0 がリリースされました。
いくつかの機能追加・バグ修正が行われています。
また、今回の期間中に @not-an-aardvark が TSC メンバー1になりました
彼は ECMAScript の仕様に明るく、昨年の6月以降は平均1日1個ペースで Pull Requests を作成して ESLint に貢献してきました。
質問やバグ報告等ありましたら、お気軽にこちらまでお寄せください。
新しいルール
#7631: template-tag-spacing
タグ付きテンプレート式 (Tagged template expressions) において、タグとテンプレート リテラルとの間の空白を矯正するスタイル・ルールです。
空白を禁止するオプションと強制するオプションがあり、デフォルトでは禁止します。
/*eslint template-tag-spacing: error */
//✔ GOOD
const foo = tag`hello`
//✘ BAD
const foo = tag `hello`
ところで、Qiita の構文ハイライトはいつになったら ES2015 構文に対応するのでしょうか?
オプションが追加されたルール
#7111: no-use-before-define variables: false
変数への参照が変数宣言より前にあったとしても、それがネストした関数スコープ内にあれば警告しないオプションが追加されました。
/*eslint no-use-before-define: [error, {variables: false}] */
/*globals doSomething */
//✔ GOOD
function foo() {
doSomething(a)
}
let a = 0
//✘ BAD
doSomething(a)
let a = 0
静的検証では、そのような変数が参照エラーを発生させるかどうかを正確に判断できないため、no-use-before-define ルールでは安全側に寄せて運用されていました。
今回、確実な TDZ エラーだけを警告したいという要望によって、このオプションが追加されました。
#7970: no-unused-vars ignoreRestSiblings
React 等の界隈では、現在策定中の Rest/Spread Properties (Stage 3) を利用して「特定のプロパティを削除しつつオブジェクトをコピーする」イディオムがよく使われるそうです。このとき変数定義を利用してプロパティを削除するのですが、削除するプロパティのための変数定義を警告したくない、という要望が断続的に届いていました。
ESLint は本来 Stage 4 に達した構文だけをサポートしているのですが、今回、特別に実装されました。
/*eslint no-unused-vars: [error, {ignoreRestSiblings: true}] */
/*globals doSomething, obj */
//✔ GOOD
let {a, ...objWithoutA} = obj // この a が未使用でも警告されなくなる
doSomething(objWithoutA)
eslint --fix
をサポートしたルール
今回はありません。
-
Technical Steering Committee (技術的な運営委員会) の略称で、開発の優先度や機能追加の承認などを行う権限を持つグループ。現在8名。 ↩