كيفية استبعاد خاصية من نوع في TypeScript (Exclude property from type)
مرحبًا بالجميع! أنا جديد في TypeScript وقد واجهت مشكلة أثناء العمل مع أنواع الكائنات. لدي واجهة `User` تحتوي على العديد من الحقول: `id`، `name`، `email`، `password`، `createdAt`، `role`، إلخ. عندما أعيد بيانات المستخدم من API، لا أريد إرسال `password` و `createdAt` إلى العميل (فهذه حقول داخلية).
المشكلة هي أنني لا أريد إنشاء واجهة منفصلة للتمثيل العام للمستخدم، لأن ذلك يؤدي إلى تكرار الكود. إذا أضفت حقلًا جديدًا إلى `User`، يجب أن أتذكر إضافته أيضًا إلى الواجهة العامة.
إليك مثال:
```typescript
interface User {
id: number;
name: string;
email: string;
password: string;
createdAt: Date;
role: 'admin' | 'user';
}
// كيف يمكنني الحصول على نوع بدون password و createdAt؟
// أريد شيئًا مثل:
// type PublicUser = ExcludeProperty;
```
لقد جربت استخدام `Omit`، لكنني لست متأكدًا من أن هذا هو الصحيح.