TypeScriptのジェネリックスとはどのようなときに使うのでしょうか。

フリーランスエンジニアをしています。
AWSを利用している際にTypeScriptを使用していました。
別案件でTSを利用した案件にジョインした際、ジェネリックスという文法で記載しているという旨のwikiがありました。
そこで質問なのですが、TypeScriptのジェネリックスとはどのようなときに使うのでしょうか。
ユースケースなどあれば教えてください。
1年前
view数 50

    回答を投稿して企業にアピールしましょう!

    Q&Aで投稿された回答は、
    企業側に表示されるプロフィールにも投稿履歴として表示されます。

    Offersにログイン・新規登録して、気になるテーマやトピックを話してみよう!

    \回答があります!/

    • Tomotaka

      エンジニア

      3ヶ月前

      フレームワーク、ライブラリ、その他自作の関数、型などで利用者側で型の一部を拡張させたい場合や使うまで型が断定できない処理に使うことが多いと思います。

      ※以下、fetch処理をラップして呼び出し時に<T>という型引数を受け取る関数を想定しています。

      身近な例ですとfetch処理に外部APIから渡される想定の型をつけておくなどがあると思います。

      その時にPromise<User>と戻り値の型をつけておくとUser型を持った値を返すことを保証することができます。

      Userの型の部分を差し替えてPromise<Product>とした場合、同じfetch処理でも型保証を変えることができるのでより使いやすくなると思います。

      また、上記は処理の話ですが、型の場合も同じで固定で持ってしまうと不便な型をライブラリやフレームワーク側で拡張、入れ替え可能な型として提供していることがあります。(React.FCやReact.ComponentPropsなど)

      以上、このようなパターンがあれば、今後積極的に使ってみてください。
      view数 15
      • 1