ما هو Record<K, V> في TypeScript وكيفية استخدامه؟
مرحبًا! بدأت تعلم TypeScript ووجدت النوع `Record`. بصراحة، لم أفهم تمامًا ما الغرض منه وكيف يختلف عن الكائن العادي أو الـ interface.
لنفترض أن لدي هذا الكود:
```typescript
interface User {
id: number;
name: string;
}
const users: { [key: number]: User } = {
1: { id: 1, name: 'آنا' },
2: { id: 2, name: 'بوريس' }
};
```
أرى أنه يمكنني كتابة `{ [key: number]: User }`. لكن في الوثائق وجدت `Record`. هل هما نفس الشيء؟ أم هناك فروق دقيقة؟
أيضًا، حاولت إنشاء كائن حيث المفاتيح هي نصوص يمكن أن تكون قيمًا محددة فقط، مثل حالات الطلب: 'pending', 'shipped', 'delivered'. أريد أن تكون المفاتيح بدقة من هذه المجموعة، والقيم هي تاريخ (نص). كيف يمكن فعل ذلك باستخدام Record؟ وهل يمكن أصلًا؟
سأكون ممتنًا لشرح واضح مع أمثلة، لأن هناك الكثير من المقالات المعقدة على الإنترنت، وأحتاج شرحًا بسيطًا وعمليًا للمبتدئين.