Airbnb JavaScript スタイルガイドの eslint 未対応ルールまとめ

Airbnb JavaScript スタイルガイドのうち、eslint でカバーできないルールのみを集めました。

Types

- [1.1](https://mitsuruog.github.io/javascript-style-guide/#types--primitives)
- [1.2](https://mitsuruog.github.io/javascript-style-guide/#types--complex)

References

- [2.3](https://mitsuruog.github.io/javascript-style-guide/#references--block-scope)

Objects

- [3.2](https://mitsuruog.github.io/javascript-style-guide/#es6-computed-properties)
- [3.5](https://mitsuruog.github.io/javascript-style-guide/#objects--grouped-shorthand)
- [3.8](https://mitsuruog.github.io/javascript-style-guide/#objects--rest-spread)

Arrays

- [4.2](https://mitsuruog.github.io/javascript-style-guide/#arrays--push)
- [4.3](https://mitsuruog.github.io/javascript-style-guide/#es6-array-spreads)
- [4.4](https://mitsuruog.github.io/javascript-style-guide/#arrays--from-iterable)
- [4.5](https://mitsuruog.github.io/javascript-style-guide/#arrays--from-array-like)
- [4.6](https://mitsuruog.github.io/javascript-style-guide/#arrays--mapping)
- [4.8](https://mitsuruog.github.io/javascript-style-guide/#arrays--bracket-newline)

Destructuring

- [5.3](https://mitsuruog.github.io/javascript-style-guide/#destructuring--object-over-array)

Strings

- [6.2](https://mitsuruog.github.io/javascript-style-guide/#strings--line-length)

Functions

- [7.4](https://mitsuruog.github.io/javascript-style-guide/#functions--note-on-blocks)
- [7.5](https://mitsuruog.github.io/javascript-style-guide/#functions--arguments-shadow)
- [7.7](https://mitsuruog.github.io/javascript-style-guide/#es6-default-parameters)
- [7.8](https://mitsuruog.github.io/javascript-style-guide/#functions--default-side-effects)
- [7.9](https://mitsuruog.github.io/javascript-style-guide/#functions--defaults-last)

アロー関数(Arrow Functions)

- [8.3](https://mitsuruog.github.io/javascript-style-guide/#8.3)

Classes & Constructors

- [9.1](https://mitsuruog.github.io/javascript-style-guide/#constructors--use-class)
- [9.2](https://mitsuruog.github.io/javascript-style-guide/#constructors--extends)
- [9.3](https://mitsuruog.github.io/javascript-style-guide/#constructors--chaining)
- [9.4](https://mitsuruog.github.io/javascript-style-guide/#constructors--tostring)

Modules

- [10.1](https://mitsuruog.github.io/javascript-style-guide/#modules--use-them)
- [10.2](https://mitsuruog.github.io/javascript-style-guide/#modules--no-wildcard)
- [10.3](https://mitsuruog.github.io/javascript-style-guide/#modules--no-export-from-import)
- [10.8](https://mitsuruog.github.io/javascript-style-guide/#modules--multiline-imports-over-newlines)

Iterators and Generators

- [11.2](https://mitsuruog.github.io/javascript-style-guide/#generators--nope)

Properties

- [12.2](https://mitsuruog.github.io/javascript-style-guide/#properties--bracket)

Variables

- [13.3](https://mitsuruog.github.io/javascript-style-guide/#variables--const-let-group)
- [13.4](https://mitsuruog.github.io/javascript-style-guide/#variables--define-where-used)

Hoisting

- [14.1](https://mitsuruog.github.io/javascript-style-guide/#hoisting--about)
- [14.2](https://mitsuruog.github.io/javascript-style-guide/#hoisting--anon-expressions)
- [14.3](https://mitsuruog.github.io/javascript-style-guide/#hoisting--named-expressions)
- [14.4](https://mitsuruog.github.io/javascript-style-guide/#hoisting--declarations)

Comparison Operators & Equality

- [15.2](https://mitsuruog.github.io/javascript-style-guide/#comparison--if)
- [15.3](https://mitsuruog.github.io/javascript-style-guide/#comparison--shortcuts)
- [15.4](https://mitsuruog.github.io/javascript-style-guide/#comparison--moreinfo)

Control Statements

- [17.1](https://mitsuruog.github.io/javascript-style-guide/#control-statements)
- [17.2](https://mitsuruog.github.io/javascript-style-guide/#control-statements--value-selection)

Comments

- [18.1](https://mitsuruog.github.io/javascript-style-guide/#comments--multiline)
- [18.2](https://mitsuruog.github.io/javascript-style-guide/#comments--singleline)
- [18.4](https://mitsuruog.github.io/javascript-style-guide/#comments--actionitems)
- [18.5](https://mitsuruog.github.io/javascript-style-guide/#comments--fixme)
- [18.6](https://mitsuruog.github.io/javascript-style-guide/#comments--todo)

Whitespace

- [19.7](https://mitsuruog.github.io/javascript-style-guide/#whitespace--after-blocks)

Type Casting & Coercion

- [22.1](https://mitsuruog.github.io/javascript-style-guide/#coercion--explicit)
- [22.4](https://mitsuruog.github.io/javascript-style-guide/#coercion--comment-deviations)
- [22.5](https://mitsuruog.github.io/javascript-style-guide/#coercion--bitwise)

Naming Conventions

- [23.5](https://mitsuruog.github.io/javascript-style-guide/#naming--self-this)
- [23.6](https://mitsuruog.github.io/javascript-style-guide/#naming--filename-matches-export)
- [23.7](https://mitsuruog.github.io/javascript-style-guide/#naming--camelCase-default-export)
- [23.8](https://mitsuruog.github.io/javascript-style-guide/#naming--PascalCase-singleton)
- [23.9](https://mitsuruog.github.io/javascript-style-guide/#naming--Acronyms-and-Initialisms)
- [23.10](https://mitsuruog.github.io/javascript-style-guide/#naming--uppercase)

Accessors

- [24.1](https://mitsuruog.github.io/javascript-style-guide/#accessors--not-required)
- [24.2](https://mitsuruog.github.io/javascript-style-guide/#accessors--no-getters-setters)
- [24.3](https://mitsuruog.github.io/javascript-style-guide/#accessors--boolean-prefix)
- [24.4](https://mitsuruog.github.io/javascript-style-guide/#accessors--consistent)

Events

- [25.1](https://mitsuruog.github.io/javascript-style-guide/#events--hash)

jQuery

- [26.1](https://mitsuruog.github.io/javascript-style-guide/#jquery--dollar-prefix)
- [26.2](https://mitsuruog.github.io/javascript-style-guide/#jquery--cache)
- [26.3](https://mitsuruog.github.io/javascript-style-guide/#jquery--queries)
- [26.4](https://mitsuruog.github.io/javascript-style-guide/#jquery--find)

ECMAScript 5 Compatibility

- [27.1](https://mitsuruog.github.io/javascript-style-guide/#es5-compat--kangax)

ECMAScript 6+ (ES 2015+) Styles

- [28.1](https://mitsuruog.github.io/javascript-style-guide/#es6-styles)
- [28.2](https://mitsuruog.github.io/javascript-style-guide/#tc39-proposals)

Testing

- [30.1](https://mitsuruog.github.io/javascript-style-guide/#testing--yup)
- [30.2](https://mitsuruog.github.io/javascript-style-guide/#testing--for-real)

## 所感
[eslint-config-airbnb](https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb) を入れれば、ほとんどのルールを自動的にチェックしてくれると思っていました。
しかし、eslint 未対応のルールを列挙してみると、自分の頭に入れるべきルールが多くあることに驚きました。