هل يمكن توسيع (وراثة) الأنواع في 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