تخطَّ إلى المحتوى

توسعة الأنواع

يمكن توسيع interface (بنسخ الأعضاء من نوع آخر):

interface X {
a: string;
}
interface Y extends X {
b: string;
}

يمكن أيضًا التوسيع من أنواع متعددة:

interface A {
a: string;
}
interface B {
b: string;
}
interface Y extends A, B {
y: string;
}

تعمل الكلمة المفتاحية extends فقط مع الواجهات والفئات، أما الأنواع فتستخدم التقاطع:

type A = {
a: number;
};
type B = {
b: number;
};
type C = A & B;

يمكن توسيع نوع باستخدام واجهة، ولكن ليس العكس:

type A = {
a: string;
};
interface B extends A {
b: string;
}