LoginSignup
7
5

More than 5 years have passed since last update.

ESLint v3.15.0

Last updated at Posted at 2017-02-05

v3.14.0 | 次 v3.16.0

ESLint 3.15.0 がリリースされました。
いくつかの機能追加・バグ修正が行われています。

また、今回の期間中に @not-an-aardvark が TSC メンバー1になりました :tada:
彼は ECMAScript の仕様に明るく、昨年の6月以降は平均1日1個ペースで Pull Requests を作成して ESLint に貢献してきました。

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


:bulb: 新しいルール

#7631: template-tag-spacing

タグ付きテンプレート式 (Tagged template expressions) において、タグとテンプレート リテラルとの間の空白を矯正するスタイル・ルールです。
空白を禁止するオプションと強制するオプションがあり、デフォルトでは禁止します。

/*eslint template-tag-spacing: error */

//✔ GOOD
const foo = tag`hello`

//✘ BAD
const foo = tag `hello`

:thinking: ところで、Qiita の構文ハイライトはいつになったら ES2015 構文に対応するのでしょうか?

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

#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)

:pencil: eslint --fix をサポートしたルール

今回はありません。



  1. Technical Steering Committee (技術的な運営委員会) の略称で、開発の優先度や機能追加の承認などを行う権限を持つグループ。現在8名。 

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5