TypeScriptでは、interface extendsを使用して型を拡張(継承)することも、type & type(交差型)を使用することもできます。また、インターフェースは型を拡張でき、その逆も可能です。
インターフェースは、プロパティを継承するためにextendsキーワードを使用します:
interface Animal { name: string; } interface Bird extends Animal { wings: number; }
タイプは&を介して結合できます:
type Animal = { name: string }; type Bird = Animal & { wings: number };
また、インターフェースは別の型を拡張することができます:
type Base = { id: number }; interface Derived extends Base { description: string; }
特徴:
タイプ(type)はインターフェースを通じて拡張できますか、それともその逆は?ほとんどの人が犯す誤りは何ですか?
多くの人は、インターフェースのみがインターフェースを通じて拡張できると考えていますが、実際にはインターフェースは型を拡張できます:
type Basic = { flag: boolean }; interface Extra extends Basic { name: string; }
ただし、タイプはextendsを使用して他のタイプを拡張することはできず、型の交差(&)を介してのみ拡張できます。
物語
物語
物語
チームはinterfaceがタイプで拡張できないと考えており、共通機能の拡張のためにすべての構造をtypeからinterfaceに書き直して、多くの時間と労力を費やしていましたが、既存のタイプを非標準的に拡張することができたのです。