JSON形式で表現されるデータがあったとして、データの型付け〈typing〉をTypeScriptで記述するとしましょう。インターフェイスやクラスを使わずに、次のように型定義するとお手軽です。 type A = { "type" : "a", // A specific } type B = { "type" : "b", // B specific } type C = { "type" : "c", // C specific } 型定義の見た目もJSONっぽいです。 ここで、A, B, C は“お仲間”とみなしていい型達だとします。だとすると、「A, B, C はお仲間である」という情報が欠けています。インターフェイス/クラスなら、お仲間であることは共通の親からextendsして示せます。上の書き方だとextendsは書けません*1。 型のグループに名前を付けてあげればいいでしょう*