Avatar ·

هل يمكن توسيع (وراثة) الأنواع في TypeScript؟

مرحباً بالجميع! لقد بدأت للتو في تعلم TypeScript وواجهت مشكلة. لدي واجهة (interface) لبيانات المستخدم الأساسية: ```typescript interface User { id: number; name: string; email: string; } ``` الآن أحتاج إلى إنشاء نوع (type) للمسؤول (admin)، الذي يحتوي على جميع حقول المستخدم العادي، بالإضافة إلى الدور (role) ومستوى الصلاحيات (permissions). أعلم أنه يمكن توسيع الواجهات (interfaces) باستخدام `extends`، لكن هل يعمل هذا مع الأنواع المعلنة عبر `type`؟ لقد جربت القيام بذلك: ```typescript type User = { id: number; name: string; email: string; } type Admin = User & { role: string; permissions: string[]; } ``` لقد نجح هذا، لكن قيل لي أن هذا ليس "توسيعاً" حقيقياً، بل هو تقاطع أنواع (intersection). ما الفرق؟ وهل هناك طريقة لعمل وراثة كلاسيكية للأنواع، كما في الواجهات؟ شكراً مسبقاً على المساعدة! <<>>

الطرق الأساسية لتوسيع الأنواع في TypeScript

نعم، يمكن توسيع الأنواع في TypeScript