TypeScript: خطأ 'Type 'string' is not assignable to type' عند العمل مع الكائنات
مرحباً! بدأت تعلم TypeScript وواجهت خطأ غريباً. لدي واجهة (interface) تصف مستخدماً:
```typescript
interface User {
name: string;
age: number;
role: 'admin' | 'user';
}
```
أحاول إنشاء دالة تأخذ سلسلة نصية (string) للدور وتعيد كائن مستخدم:
```typescript
function createUser(name: string, age: number, role: string): User {
return { name, age, role };
}
```
لكن TypeScript يعطي خطأ: "Type 'string' is not assignable to type '"admin" | "user"'" عند `role`. لا أفهم لماذا يحدث هذا. فـ `role` هي string، وأنا أمرر string يجب أن تناسب النوع `'admin' | 'user'`. في JavaScript كان هذا سيعمل بدون مشاكل.
حاولت تحويل النوع (type casting) صراحةً: `role as 'admin' | 'user'`، لكن هذا يبدو حلاً مؤقتاً (workaround). هل هناك طريقة صحيحة لحل هذه المشكلة؟ ربما أصمم الواجهة بشكل خاطئ؟ سأكون ممتناً لشرح مفصل.
<<>>