ما هو Record في TypeScript وكيفية استخدامه بشكل صحيح؟
```html
مرحباً بالجميع! لقد بدأت مؤخراً في تعلم TypeScript وصادفت النوع المدمج `Record`. قرأت الوثائق، لكنني لم أفهم تماماً ما هو جوهره ومتى يجب استخدامه.
أنا أفهم أن هناك واجهات وأنواع، لكن `Record` يبدو مختلفاً نوعاً ما. على سبيل المثال، رأيت هذا الكود:
```typescript
const users: Record = {};
```
لكني لا أفهم كيف يختلف هذا عن كائن بسيط `{ [key: string]: User }`. أو عن `Map`؟ متى أختار أيهما؟
مشكلتي المحددة: لدي قائمة بحالات الطلب (pending, approved, rejected)، ولكل حالة أحتاج إلى تخزين نص معين (مثل اللون للعرض). لقد كتبت هكذا:
```typescript
const statusColors = {
pending: 'yellow',
approved: 'green',
rejected: 'red'
};
```
لكن TypeScript يشتكي عندما أحاول الوصول إلى `statusColors['unknown']`. كيف يمكنني كتابة نوع هذه الخريطة بشكل صحيح باستخدام `Record`؟ وبشكل عام، ما هي السيناريوهات التي يكون فيها `Record` هو الأنسب؟ سأكون ممتناً للإجابة.
```