Avatar ·

كيفية تعيين نوع لجميع قيم الكائن في TypeScript باستثناء المفاتيح؟

مرحباً بالجميع! لدي كائن أستخدمه كقاموس. المفاتيح هي سلاسل نصية، والقيم هي أرقام. هكذا: ```typescript const myDict = { apple: 5, banana: 3, cherry: 8 }; ``` المشكلة هي أن TypeScript لا يتحقق من أن جميع القيم في هذا الكائن هي أرقام. إذا كتبت عن طريق الخطأ `apple: "five"`، فلن يكون هناك خطأ، لأن TypeScript يستنتج النوع كـ `{ apple: string | number; banana: number; cherry: number }` وليس كـ `{ [key: string]: number }`. حاولت استخدام `Record`: ```typescript const myDict: Record = { apple: 5, banana: 3, cherry: 8 }; ``` هذا يعمل، لكنني الآن لا أستطيع الحصول على الإكمال التلقائي للمفاتيح. عندما أكتب `myDict.apple`، يظهر TypeScript أن النوع هو `number`، لكنه لا يقترح المفاتيح الموجودة بالضبط. أحتاج إلى: 1. أن تكون جميع القيم من نفس النوع (مثلاً `number`). 2. أن يعرف TypeScript المفاتيح الدقيقة (السلاسل "apple"، "banana"، "cherry") ويعطي الإكمال التلقائي.