Avatar ·

كيفية إضافة خاصية جديدة بشكل صريح إلى كائن 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.