خطأ 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` — يعمل، لكنني سمعت أنها ممارسة سيئة. أرشدوني إلى الحل الأمثل لهذه المشكلة.