إعلان وتهيئة القاموس (Dictionary) في TypeScript
مرحبًا زملائي! أنا جديد في TypeScript (كنت أكتب سابقًا بلغة JS الخالصة) وواجهت مشكلة عند إعلان القاموس (Dictionary، المعروف أيضًا بالمصفوفة الترابطية). في JavaScript كنت أفعل هكذا:
```typescript
let dict = {};
dict["key1"] = "value1";
dict["key2"] = 123;
```
وكان كل شيء يعمل. لكن في TypeScript أحتاج إلى كتابة القاموس بشكل صارم، حيث المفاتيح تكون نصوصًا والقيم أرقامًا. جربت عدة خيارات، لكن في كل مرة أحصل على أخطاء في الترجمة أو سلوك غريب.
الخيار 1:
```typescript
let dict = {};
dict["apple"] = 5; // Error: Element implicitly has an 'any' type
```
الخيار 2:
```typescript
let dict: object = {};
dict["apple"] = 5; // Error: Property 'apple' does not exist on type 'object'
```
الخيار 3:
```typescript
let dict: { [key: string]: number } = {};
dict["apple"] = "text"; // أريد أن يكون هذا خطأ، لكن...
// في الواقع سيكون هناك خطأ هنا، لكن ليس دائمًا واضحًا كيف نفعل ذلك بشكل صحيح.
```
أريد:
1. إعلان قاموس فارغ بمفاتيح نصوص