ESLint v5.9.0

前 [v5.8.0] | 次 [v5.10.0]

<blockquote class="twitter-tweet"><p lang="en" dir="ltr">ESLint v5.9.0 released: <a href="https://t.co/ZsZsXRAApi">https://t.co/ZsZsXRAApi</a></p>&mdash; ESLint (@geteslint) <a href="https://twitter.com/geteslint/status/1060969016586461184?ref_src=twsrc%5Etfw">November 9, 2018</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

ESLint 5.9.0 がリリースされました。
小さな機能追加とバグ修正が行われました。

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

> 🏢 [日本語 Issue 管理リポジトリ](https://github.com/eslint/eslint-jp)
> 👫 [日本語サポート チャット](https://gitter.im/eslint/eslint-jp)
> 🏢 [本家リポジトリ](https://github.com/eslint/eslint)
> 👫 [本家サポート チャット](https://gitter.im/eslint/eslint)

# 🚀 本体への機能追加

## [#10912]: `--fix-type` CLI オプションが追加されました

`eslint --fix` で自動修正する際に、適用する修正の種類を選択できるようになりました。
種類には以下の3つがあります

- `problem` ... 潜在的なエラーに関する指摘
- `suggestion` ... より良い書き方を提示する指摘 (`const`使え、等)
- `layout` ... コード フォーマットに関する指摘 (空白・改行・セミコロン・カンマ・カッコ等)

```shell:例
eslint "src/**/*.js" --fix --fix-type suggestion,layout
```

プラグイン制作者の方は、各ルールの`meta.type`プロパティでルールが属する種類を定義できます。

## [#10953]: Lint 結果に `usedDeprecatedRules` プロパティが追加されました

Lint 時に非推奨になったルールが使用されている場合、`usedDeprecatedRules` プロパティに記録されるようになりました。

カスタム フォーマッター制作者の方は、このプロパティを利用して非推奨ルールが利用されていることを表示することができます。

# 💡 新しいルール

特になし。

# 🔧 オプションが追加されたルール

## [#10554]: [id-match] ignoreDestructuring

Destructuring によって定義される変数を無視するオプションが追加されました。

```js
/*eslint id-match: [error, "^[^_]+$", { ignoreDestructuring: true }]*/

//✘ BAD
const normal_var = 1
const { category_id: other_name } = query
 
//✔ GOOD
const { category_id } = query
```

> [Open online demo](https://eslint.org/demo/#eyJ0ZXh0IjoiLyplc2xpbnQgaWQtbWF0Y2g6IFtlcnJvciwgXCJeW15fXSskXCIsIHsgaWdub3JlRGVzdHJ1Y3R1cmluZzogdHJ1ZSB9XSovXHJcblxyXG4vL+KcmCBCQURcclxuY29uc3Qgbm9ybWFsX3ZhciA9IDFcclxuY29uc3QgeyBjYXRlZ29yeV9pZDogb3RoZXJfbmFtZSB9ID0gcXVlcnlcclxuIFxyXG4vL+KclCBHT09EXHJcbmNvbnN0IHsgY2F0ZWdvcnlfaWQgfSA9IHF1ZXJ5XHJcbiIsIm9wdGlvbnMiOnsicGFyc2VyT3B0aW9ucyI6eyJlY21hVmVyc2lvbiI6OCwic291cmNlVHlwZSI6Im1vZHVsZSIsImVjbWFGZWF0dXJlcyI6e319LCJydWxlcyI6e30sImVudiI6e319fQ==)

## [#10906]: [space-before-blocks] off

一部のブロックについて検証をオフにするためのオプションが追加されました。

```js
/*eslint space-before-blocks: [error, {
    functions: always,
    classes: off,
    keywords: always
}]*/

//✘ BAD
function f(){} // functions: always
if (a){} // keywords: always
 
//✔ GOOD
function g() {} // functions: always
class A{} // classes: off
class B {} // classes: off
if (a) {} // keywords: always
```

> [Open online demo](https://eslint.org/demo/#eyJ0ZXh0IjoiLyplc2xpbnQgc3BhY2UtYmVmb3JlLWJsb2NrczogW2Vycm9yLCB7XHJcbiAgICBmdW5jdGlvbnM6IGFsd2F5cyxcclxuICAgIGNsYXNzZXM6IG9mZixcclxuICAgIGtleXdvcmRzOiBhbHdheXNcclxufV0qL1xyXG5cclxuLy/inJggQkFEXHJcbmZ1bmN0aW9uIGYoKXt9IC8vIGZ1bmN0aW9uczogYWx3YXlzXHJcbmlmIChhKXt9IC8vIGtleXdvcmRzOiBhbHdheXNcclxuIFxyXG4vL+KclCBHT09EXHJcbmZ1bmN0aW9uIGcoKSB7fSAvLyBmdW5jdGlvbnM6IGFsd2F5c1xyXG5jbGFzcyBBe30gLy8gY2xhc3Nlczogb2ZmXHJcbmNsYXNzIEIge30gLy8gY2xhc3Nlczogb2ZmXHJcbmlmIChhKSB7fSAvLyBrZXl3b3JkczogYWx3YXlzXHJcbiIsIm9wdGlvbnMiOnsicGFyc2VyT3B0aW9ucyI6eyJlY21hVmVyc2lvbiI6OCwic291cmNlVHlwZSI6Im1vZHVsZSIsImVjbWFGZWF0dXJlcyI6e319LCJydWxlcyI6e30sImVudiI6e319fQ==)

# ✒️ `eslint --fix` をサポートしたルール

特になし。

# ⚠️ 非推奨になったルール

特になし。

[v5.8.0]: http://qiita.com/mysticatea/items/afbe20263346d8729c9d
[v5.10.0]: http://qiita.com/mysticatea/items/64a09c3bea4c06d84a2e
[#9999]: https://github.com/eslint/eslint/issues/9999
[#10554]: https://github.com/eslint/eslint/issues/10554
[#10906]: https://github.com/eslint/eslint/issues/10906
[#10912]: https://github.com/eslint/eslint/issues/10912
[#10953]: https://github.com/eslint/eslint/issues/10953
[xxxx]: http://eslint.org/docs/rules/xxxx
[id-match]: http://eslint.org/docs/rules/id-match
[space-before-blocks]: http://eslint.org/docs/rules/space-before-blocks

<!-- 
![JSCS Icon](http://jscs.info/favicon.ico) JSCS 互換ルールです。
-->