خطأ "not assignable to parameter of type never" في TypeScript: الأسباب والحل
مرحبًا! بدأت في تعلم TypeScript وواجهت خطأ غريبًا لا أستطيع فهمه.
لدي كود بسيط حيث أحاول تصفية مصفوفة (array) بإزالة القيم null و undefined منها:
```typescript
const items: (string | null | undefined)[] = ['hello', null, 'world', undefined];
const filteredItems = items.filter(item => item !== null && item !== undefined);
console.log(filteredItems); // أتوقع: ['hello', 'world']
```
لكن TypeScript يعطي خطأ: `Argument of type '(item: string | null | undefined) => boolean' is not assignable to parameter of type '(value: string | null | undefined, index: number, array: (string | null | undefined)[]) => value is never'`.
جربت عدة خيارات، مثل تحديد النوع (type) لـ `filteredItems` بشكل صريح، لكن الخطأ لا يزال قائمًا. ماذا يعني `never` في هذا السياق وكيف يمكن تصفية المصفوفة بشكل صحيح ليفهم TypeScript أن null و undefined قد أزيلا؟
من فضلك، اشرح ما يحدث وكيفية الإصلاح. شكرًا مقدمًا!