🐖

typescriptでtypeとintefaceの違いをふと忘れた君へ(箇条書きでお伝え)(更新していきます。)

2024/12/22に公開

type

  • 拡張できる
  • カスタムがあれこれutil typeででき、いじることが得意
  • フィールド自体を定義できる

interfeace

  • 拡張がmergeやextendsによって自由にできる
  • それゆえに、定義の管理が迷子になりやすい
  • がパッケージやプラグインの機能をそのまま拡張して独自のフィールドなどを定義したい場合にはそのままmergeして型を支えるため、便利
  • エラーにInterfeceの名前が表示されるためデバッグしやすい
  • オブジェクトのみの定義が可能

結局

reactなどのPropsではいじったり頻繁に拡張しないからTypeがいいきがする
パッケージみたいな実装を作る時はその呼び出し側の使いやすさ的にもデバッグしやすいしそのまま拡張できるInterfaceが吉

Discussion