ESLint
[prefer-destructuring] を有効にする(初期設定はオフ)
Use array destructuring
①:なぜ破壊的な処理だとされているのか?
"Use array destructuring" は
「配列の**分割代入(Destructuring assignment)**を使用せよ」
の意です(ESLintのドキュメントからそのように読み取れます))。
「破壊」ではありません。
ESLintがエラーを返すのは、分割代入を強制するオプションを有効に設定しているからです。
再現コード
プロパティアクセサ + 代入式。
JavaScript
1'use strict';
2var files = ['ready','execute','complete'];
3var result = {state: ''};
4
5result.state = files[0]; // Use array destructuring
6console.log(result); // {state: "ready"}
分割代入
分割代入の使用例1 (Google Chromeで正常動作するも、ESLintでParsing error)
JavaScript
1'use strict';
2var files = ['ready','execute','complete'];
3var result = {state: ''};
4
5[result.state] = files; // 5:1 - Parsing error: Assigning to rvalue
6console.log(result); // {state: "ready"}
分割代入の使用例2 (Google Chromeで正常動作するも、ESLintでParsing error)
JavaScript
1'use strict';
2var files = ['ready','execute','complete'];
3var result = {state: ''};
4
5{"0":result} = files; // 5:1 - Parsing error: Assigning to rvalue
6console.log(result); // {state: "ready"}
まとめ
下記ポイントを踏まえて、コードを保守している仲間内で最適回を相談して決めてください。
- 「分割代入を強制すること」の何が利点なのか(「分割代入 > プロパティアクセサ」の優位性はどこにあるのか)
- ESLintのパーサが解釈できる構文を探すこと
少なくとも、私はそこに意義を見出せません。
Re: frtne さん