Avatar ·

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). هل هناك طريقة صحيحة لحل هذه المشكلة؟ ربما أصمم الواجهة بشكل خاطئ؟ سأكون ممتناً لشرح مفصل. <<>>

سبب الخطأ: TypeScript يحمي