كيفية تعيين نوع لجميع قيم الكائن في 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") ويعطي الإكمال التلقائي.