オフィス狛 技術部のKoma(Twitterアカウントの中の人&CEO)です。
Node.js + ESLint で開発を行っていると、良く出てくるエラーが、
「Use object destructuring prefer-destructuring」です。
直訳すると、「オブジェクトの非構造化の使用」なのですが、初見だと、何をどう修正すれば良いのか分からないんですよね・・・
例えば、以下のようなプログラムがあったとします。(あくまで例なので、意味の無いプログラムになっています)
const response = await hogeService.getUser(); if (response.id) { const userId = response.id; } else if (response.name) { const userName = response.name; }
「hogeService.getUser()」は、DBやAPIからデータを取得するイメージです。
「hogeService.getUser()」の戻り値の中には、「{id: 1234, name: "test"}」のような構造化されたデータが入っている事が前提で、そのデータと構成を「response」に設定している、という感じです。
これでESLintのチェックに掛けると、見事に
error Use object destructuring prefer-destructuring
が出ます。
「オブジェクトの非構造化の使用」を促されているので、問題なのは構造化されている「response」だと分かります。
(正確に言うと、構造化された後の使い方ですが)
と言う事で、
const { id, name } = await hogeService.getUser(); if (id) { } else if (name) { }
と直す事で、ESLintのエラーが出なくなります。
「const { id, name }」とする事で、構造化から解放されていますね。
初見だと分かり難いですが、
お決まりのパターンの修正なので、慣れるのが一番ですね。
ESLint , Node.js
0 件のコメント:
コメントを投稿