Avatar ·

كيفية تعيين نوع لجميع عناصر الكائن (الأعضاء المفهرسة) في TypeScript؟

مرحبًا! بدأت مؤخرًا في تعلم TypeScript وواجهت مشكلة. لدي كائن يخزن بيانات عن المستخدمين. المفاتيح هي معرفات نصية، والقيم هي كائنات تحتوي على معلومات. أحتاج إلى أن يتحقق TypeScript من أن جميع القيم في هذا الكائن تتوافق مع نوع معين، بغض النظر عن المفاتيح التي أستخدمها. إليك مثال لما أحاول فعله: ```typescript interface User { name: string; age: number; } // هكذا أريد تعريف كائن حيث جميع القيم هي User let users: { [key: string]: User } = {}; users["user1"] = { name: "Alice", age: 30 }; // صحيح users["user2"] = { name: "Bob", age: "25" }; // خطأ، age نص وليس رقمًا ``` هذا الكود يعمل، لكنني لست متأكدًا من أنه النهج الصحيح. سمعت عن Record، لكنني لا أفهم الفرق. كما أنني مهتم بمعرفة كيف يمكنني جعل المفاتيح ليست مجرد نصوص، بل قيمًا محددة (مثل "admin"، "user"، "guest" فقط). أرجو توضيح كيفية كتابة الأنواع بشكل صحيح.