TL;DR

  • 公式やコミュニティが型を提供していれば、自分で定義せずにそれを使う。
  • なければスキーマから型を生成し、スキーマもなければデータから型を生成する。

内容

提供されている型を使う

公式のクライアントやコミュニティが型を提供している場合は、自分で定義せずにそれを使う。たとえば GeoJSON には @types/geojson がある。

スキーマから型を生成する

型が提供されていない場合は、スキーマから型を生成する。OpenAPI なら Orval、GraphQL Schema なら GraphQL Code Generator、Protocol Buffers なら Buf が使える。

データから型を生成する

スキーマも提供されていない場合は、データから型を生成する。JSON なら quicktype が使える。ただし、データセットが無限にある場合は、生成した型からエッジケースが漏れ、実際の型と合わなくなるおそれがある。

キーワード