Avatar ·

ما هو 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` هو الأنسب؟ سأكون ممتناً للإجابة. ```