Avatar ·

خطأ 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). هل هناك عدة طرق للحل؟ شكرًا مقدمًا على المساعدة!