كيفية إضافة خاصية جديدة بشكل صريح إلى كائن window في TypeScript
مرحباً بالجميع! لقد بدأت في تعلم TypeScript وواجهت مشكلة عند العمل مع الكائن العام `window`.
أحتاج إلى إضافة خاصية مخصصة إلى `window`، على سبيل المثال، لتخزين معرف جلسة عام أو علامة يمكن الوصول إليها من أي سكريبت في الصفحة. في JavaScript العادي، كنت سأكتب ببساطة:
```typescript
window.myCustomProperty = 'hello world';
```
لكن في TypeScript، يتسبب هذا في خطأ في الترجمة:
```
Property 'myCustomProperty' does not exist on type 'Window & typeof globalThis'.
```
أفهم أن TypeScript مكتوب بشكل صارم، وأن `window` لا يحتوي على هذه الخاصية افتراضياً. لقد جربت طرقاً مختلفة: استخدام `(window as any).myCustomProperty`، لكن هذا يقتل كل الكتابة (typing). حاولت إنشاء واجهة (interface)، لكنني لست متأكداً من كيفية تطبيقها بشكل صحيح.
أرجو إرشادي حول كيفية تعريف خاصية جديدة لـ `window` بشكل صحيح، بحيث لا يشتكي TypeScript مع الحفاظ على الكتابة (typing). أحتاج إلى نهج جاهز للإنتاج (production-ready) يعمل حتى في الوضع الصارم (strict mode) لـ TypeScript.