riki.dev
Published on

TypeScriptとジェネリクス

Authors
  • avatar
    Name
    Riki "Remicck" Kawai
    Twitter
    @Ricckn

そもそもうちのコードの問題の可能性も大いにあるんだけど、たとえばTypeScriptでジェネリクスを表現するときって、ほとんどこんな形になるじゃない?

type APIBase<T> = {
  success: boolean;
  result?: T;
  // ...
};

コードの良し悪しはともかくとして、TypeからTが来てるし、そもそも型に突っ込む引数的な物なんてジェネリクスだけなんだから型を突っ込め!というのはわかるんだけど、何もTじゃなくていいのでは・・・という気持ちがすごくある。

コメントに書いておけというならばそうなんだけど、慣例的に<T>で置いてる感が強くて・・・。

例が適切ではなくて、このくらい汎用的な型(ここではAPIの返り値を定義する型)の場合は確かに<T>で適切かもしれないけど、もう少し想定されるデータがあるばあいは、<API_RESULT_TYPE>的なのもありかなぁと思うんですよ。

とは言え、だったらジェネリクスじゃなくて定義しろや、と言われると、まぁそうなんだろうな・・・。

わかるけどさぁ、というだけの話だけどどっかにTとか簡潔にしとけ(そうでないならジェネリクスにせず列挙せよ)とか書いてあるのかな?