كيفية تحديد الأنواع بشكل صحيح لـ useState في React مع TypeScript؟
مرحبًا أيها الزملاء! بدأت في تعلم TypeScript في React وواجهت على الفور مشكلة في تحديد أنواع الخطاف useState.
لدي مكون بسيط مع نموذج، حيث أحتاج إلى تخزين كائن يحتوي على حقلي name و age. هكذا أحاول القيام بذلك:
```typescript
const [user, setUser] = useState({ name: '', age: 0 });
```
يبدو أنه يعمل، ولكن عندما أريد تمرير هذه الحالة إلى مكون آخر أو دالة، يشتكي TypeScript. ثم جربت تحديد النوع بشكل صريح:
```typescript
interface User {
name: string;
age: number;
}
const [user, setUser] = useState({ name: '', age: 0 });
```
الآن يعمل، لكنني لا أفهم: هل من الضروري دائمًا كتابة النوع بشكل صريح؟ وماذا لو كانت حالتي عبارة عن مصفوفة؟ أو إذا كانت الحالة يمكن أن تكون null؟ جربت شيئًا كهذا:
```typescript
const [items, setItems] = useState([]);
// TypeScript يستنتج never[]، ولا أستطيع إضافة عناصر!
```
وسؤال آخر: كيف يمكنني تحديد نوع الدالة setUser بشكل صحيح إذا كنت أمررها إلى مكون فرعي؟ جربت كتابة `setUser: