Avatar ·

خطأ "not assignable to parameter of type never" في TypeScript: الأسباب والحل

مرحبًا أيها الزملاء! أنا مبتدئ في TypeScript وقد واجهت خطأً غير مفهوم. أكتب دالة بسيطة تقوم بتصفية مصفوفة من السلاسل النصية، مع الاحتفاظ فقط بتلك التي يزيد طولها عن 3 أحرف. إليك الكود: ```typescript function filterShortStrings(arr: string[]): string[] { return arr.filter((item) => { if (item.length > 3) { return item; } }); } const result = filterShortStrings(['cat', 'elephant', 'dog', 'giraffe']); console.log(result); ``` يظهر خطأ TypeScript في السطر `return item;`: ``` Argument of type 'string' is not assignable to parameter of type 'never'. ``` لا أفهم ماذا يعني "never" في هذا السياق. فـ `item` هو سلسلة نصية، وأنا أعيدها من callback الخاص بـ `filter`. لماذا يعتقد TypeScript أنني أحاول إرجاع شيء غير متوافق؟ هل أستخدم `filter` بشكل خاطئ؟ أرجو توضيح كيفية الإصلاح وماذا يعني هذا الخطأ. شكرًا مقدمًا! <<>>

ماذا يعني خطأ "not assignable to parameter of type never"؟