خطأ TypeScript: Type 'string | undefined' is not assignable to type 'string' — كيف أصلحه؟
مرحبًا! أنا مبتدئ في TypeScript وواجهت خطأ غير مفهوم. لدي واجهة (interface) للمستخدم، حيث الحقل `name` اختياري (قد يكون `undefined`). أحاول الحصول على هذا الاسم وتمريره إلى دالة (function) تقبل فقط سلسلة نصية (string)، لكن TypeScript يشتكي.
إليك الكود الخاص بي:
```typescript
interface User {
id: number;
name?: string; // حقل اختياري
}
function greet(name: string) {
console.log(`مرحبًا، ${name}!`);
}
const user: User = { id: 1, name: 'آنا' };
greet(user.name); // خطأ: Type 'string | undefined' is not assignable to type 'string'
```
اعتقدت أنه إذا كان الحقل `name` موجودًا، فهو بالتأكيد سلسلة نصية. لكن المترجم (compiler) يقول إنه `string | undefined`. لماذا يحدث هذا وكيف يمكنني معالجة هذه الحالة بشكل صحيح؟ لقد جربت تجاهل الخطأ باستخدام `// @ts-ignore`، لكن هذه ممارسة سيئة. أرشدني إلى الطريقة الصحيحة لجعل الكود آمنًا من حيث الأنواع (type-safe). هل هناك عدة طرق للحل؟
شكرًا مقدمًا على المساعدة!