كائن النافذة في TypeScript
تشرح هذه المقالة كائن window في TypeScript۔
يمكنك التعرف على خصائص وطرق كائن window
من خلال الشيفرة۔
YouTube Video
كائن النافذة في TypeScript
window
هو كائن عالمي في TypeScript وJavaScript يمثل نافذة المتصفح بأكملها۔ يتضمن العديد من الخصائص والأساليب للوصول إلى واجهات برمجة تطبيقات المتصفح، والتعامل مع DOM (نموذج كائن المستند)، واستخدام المؤقتات، والتخزين، وغيرها من الميزات۔
tsconfig.json وكائن window
في TypeScript، عند الوصول إلى كائن window
، تكون الميزات العالمية الخاصة بالمتصفح لها تعريفات نوعية، مما يتيح الإكمال التلقائي في المحرر وفحص الأنواع۔ بفضل ملف تعريف النوع القياسي في TypeScript (lib.dom.d.ts
)، يتعرف TypeScript على الخصائص والأساليب المختلفة لكائن window
۔
عند استخدام TypeScript، من الشائع وضع ملف tsconfig.json
في جذر المشروع۔ يُستخدم هذا الملف لتحديد خيارات المترجم ونطاق ملفات تعريف الأنواع۔
عند العمل مع window
، من المهم بشكل خاص تفعيل تعريفات أنواع المتصفح (تعريفات أنواع الـ DOM)۔ بدون ذلك، سيؤدي استخدام window
وdocument
إلى أخطاء في الأنواع۔
1{
2 "compilerOptions": {
3 "target": "es6",
4 "module": "esnext",
5 "strict": true,
6 "lib": ["es6", "dom"], // Enable DOM type definitions
7 "outDir": "./dist"
8 },
9 "include": ["src"]
10}
- عند تحديد
"lib": ["es6", "dom"]
، سيتم التعرف تلقائيًا على أنواعwindow
وdocument
وتكملتها بشكل صحيح۔
الخصائص والأساليب الرئيسية لكائن window
window.document
window.document
خاصية تُستخدم للوصول إلى DOM الصفحة۔ يمكنك استرداد العناصر وإجراء تغييرات على DOM۔
1console.log(window.document.title); // Display the title of the current document
- في هذا المثال، يتم عرض عنوان المستند الحالي۔
window.localStorage
/window.sessionStorage
window.localStorage
وwindow.sessionStorage
هما خاصيتان تُستخدمان للوصول إلى ميزات التخزين التي تسمح بحفظ بيانات المستخدم في المتصفح۔
1window.localStorage.setItem('key', 'value'); // Save data
2const value = window.localStorage.getItem('key'); // Retrieve data
3console.log(value); // 'value'
- في هذا المثال، يتم حفظ البيانات في
localStorage
، ثم استرجاعها وعرضها۔
window.location
window.location
هو كائن يُستخدم لجلب ومعالجة معلومات عنوان URL الحالي۔ يمكنك تنفيذ عمليات إعادة التوجيه وتغيير عناوين URL۔
1console.log(window.location.href); // Display the current URL
2window.location.href = 'https://example.com'; // Redirect to another page
- في هذا المثال، يتم عرض عنوان URL ويتم إعادة توجيه المستخدم إلى صفحة أخرى۔
window.setTimeout
/window.setInterval
window.setTimeout
وwindow.setInterval
هما طريقتان تُستخدمان لتنفيذ الدوال بعد تأخير أو على فترات منتظمة۔
1window.setTimeout(() => {
2 console.log('This will be executed after 2 seconds');
3}, 2000);
- ينفذ هذا الرمز عملية تعرض رسالة في وحدة التحكم بعد ثانيتين۔
window.alert
/window.confirm
/window.prompt
alert
وconfirm
وprompt
تعرض صناديق حوارية لإظهار التنبيهات أو طلب إدخال من المستخدم۔
1window.alert('Alert message');
- يعرض هذا الرمز مربع حوار تنبيه لإعلام رسالة۔
أحداث كائن window
نظرًا لأن window
جزء من الـ DOM، يمكنك أيضًا الاستماع إلى الأحداث مباشرة۔ في TypeScript، تُكمل الأنواع تلقائيًا، لذلك استخدام أسماء أحداث أو خصائص غير صحيحة سيؤدي إلى أخطاء۔
حدث تغيير حجم نافذة المتصفح
1window.addEventListener("resize", (event) => {
2 console.log("Window resized:", window.innerWidth, window.innerHeight);
3});
- يعرض هذا الرمز العرض والارتفاع الجديدين في وحدة التحكم عند تغيير حجم النافذة۔
حدث لوحة المفاتيح
1window.addEventListener("keydown", (event: KeyboardEvent) => {
2 console.log(`Key pressed: ${event.key}`);
3});
- يعرض هذا الرمز المفتاح المضغوط في وحدة التحكم عند ضغط المستخدم على أي مفتاح۔
حدث تحميل الصفحة
1window.addEventListener("load", () => {
2 console.log("Page fully loaded");
3});
- يعرض هذا الرمز رسالة في وحدة التحكم عندما تنتهي الصفحة من التحميل۔
ملاحظات
-
في TypeScript، يتم استنتاج أنواع كائنات الأحداث، لذا الانتباه لأنواع مثل
KeyboardEvent
أوMouseEvent
يجعل الشيفرة أكثر أمانًا۔ -
يُنصح بإزالة مستمعي الأحداث عندما لا تكون هناك حاجة لهم۔ يمكنك إزالة المستمعين باستخدام طريقة
window.removeEventListener
۔
1function handleClick() {
2 console.log("Clicked!");
3}
4
5// Add event listener
6window.addEventListener("click", handleClick);
7
8// Remove event listener
9window.removeEventListener("click", handleClick);
- يعرض هذا الرمز مثالاً على إضافة ثم إزالة مستمع لحدث النقر۔
عند إضافة خصائص مخصصة
عند إضافة خصائص مخصصة إلى كائن window
، يكون من الضروري توسيع النوع في TypeScript لتجنب أخطاء الأنواع۔
1// Add a custom property to the window
2interface Window {
3 myCustomProperty: string;
4}
5
6window.myCustomProperty = "Hello, World!";
7console.log(window.myCustomProperty); // "Hello, World!"
- هذا الرمز مثال على إضافة خاصية مخصصة إلى كائن
window
في TypeScript، وتعيين قيمة لها وعرضها۔
التحذيرات عند استخدام كائن window
العالمي
نظرًا لفحص الأنواع الصارم في TypeScript، سيؤدي محاولة استخدام خصائص أو أساليب غير موجودة إلى أخطاء۔ على سبيل المثال، محاولة الوصول إلى خاصية غير موجودة في كائن window
كما هي ستؤدي إلى خطأ، لذلك يجب توسيع النوع بشكل صحيح۔
وبالتالي، يلعب كائن window
دورًا مركزيًا في الوصول إلى الميزات المختلفة لتطبيقات المتصفح، وفي TypeScript، يمكنك استخدامه بأمان من خلال الاعتماد على فحص الأنواع۔
يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔