Avatar ·

خطأ TypeScript: Type 'string' is not assignable to type — كيف أصلحه؟

مرحباً بالجميع! لقد بدأت للتو في تعلم TypeScript وواجهت خطأً غير مفهوم. لدي واجهة (interface) للمستخدم: ```typescript interface User { name: string; age: number; role: 'admin' | 'user'; } ``` أحاول إنشاء كائن مستخدم من البيانات التي تم الحصول عليها من النموذج (form). البيانات تأتي على شكل نصوص (strings) (حتى العمر هو نص من input). كتبت هذا الكود: ```typescript const formData = { name: 'Иван', age: '25', // نص، مع أنه يجب أن يكون رقمًا role: 'admin' }; const user: User = { name: formData.name, age: formData.age, // خطأ: Type 'string' is not assignable to type 'number' role: formData.role // خطأ: Type 'string' is not assignable to type '"admin" | "user"' }; ``` TypeScript يشتكي من age و role. أفهم أن age يجب أن تكون رقمًا، و role يجب أن تكون بدقة 'admin' أو 'user'، لكن كيف أحول الأنواع بشكل صحيح؟ جربت استخدام `as` — يعمل، لكنني سمعت أنها ممارسة سيئة. أرشدوني إلى الحل الأمثل لهذه المشكلة.