1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

オブジェクトを分割代入する際の変数名を別名にする記法に思うこと

Last updated at Posted at 2022-10-19

オブジェクトの分割代入自体は特段難しいことではありませんが、変数名が重複してしまい別名をつけなければならない場合の記法がちょっとひっかかったので覚えも兼ねて記事にしました。

ひっかかった理由

TypeScriptの型付けと記法が似ており混同してしまったため

書き方及びユースケース

分割代入の代表例はフックですが、同一コンポーネント内にフックを複数用いる場合がユースケースの一例として考えられます。
下記例は一つのコンポーネント内に似て非なるデータフェッチ用のフックが必要となり、変数名が丸被りしてしまった時のものです。
書き方は変数名の後ろに「: 新しい変数名」とします。
この記法がTypeScriptの型付けと紛らわしく感じさせます。

//カスタムフックによるデータフェッチ
  const { data, error, isLoading } = useGitHub();
//ApolloClientによるデータフェッチ。重複する変数名は別名で対処。
  const {
    data: dataApollo,
    error: errorApollo,
    loading: loadingApollo,
  } = useQuery<ジェネリクスの型定義>(gqlのクエリ);

ちなみに以下はTypeScriptの型付けです。【変数名+:】というスタイルがややこしくないですか?

//ちなみに以下の場合はstringをつけなくても型推論でstringが自動付与されます。
const aa: string = "hogehoge";

TypeScriptの型付けとのすみ分け

TypeScriptの型付けを次のようにしています。

  • フック側(右側)で全体に対して型付けをする。
  • 個別の変数単位で型付けをする場合は、その変数を活用する次の段階で型付けをする。

個人的に思うこと

整理も兼ねて記事を書きましたが、正直ややこしいなーと思います。
が、記法はどんどん変わっていくのであまりこだわらずその時々に沿って対応していく所存です。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?