العودة إلى المدونة
Guide2 دقيقة قراءة

تطوير TypeScript لـ FiveM: سكريبتات حديثة مع أنواع

اكتب سكريبتات FiveM باستخدام TypeScript. إعداد البناء، تعريفات النيتف، التجميع ولماذا يترك أفضل المطورين Lua العادي لـ TS في 2026.

Agency Scripts

المؤسس والمطور الرئيسي في Agency Scripts

لماذا TypeScript لـ FiveM؟

يجلب TypeScript التحقق الثابت من الأنواع، ميزات جافا سكريبت الحديثة، ودعم IDE متفوق لتطوير FiveM. بينما تظل Lua لغة السكريبت القياسية، يتم تشغيل TypeScript المترجم إلى جافا سكريبت بشكل أصلي في FiveM عبر بيئة جافا سكريبت. الأمان النوعي يكتشف الأخطاء أثناء الترجمة التي قد تتسبب في تعطل الخادم أثناء التشغيل، الإكمال التلقائي يسرع التطوير بشكل كبير، والواجهات تجعل الكود موثقًا ذاتيًا. للمشاريع المعقدة مع عدة مطورين، يقلل TypeScript من عبء التنسيق ويجعل إعادة الهيكلة أكثر أمانًا.

إعداد المشروع باستخدام fivem-ts-boilerplate

أسرع طريقة لبدء مشروع TypeScript لـ FiveM هي باستخدام قالب المجتمع fivem-ts-boilerplate. استنسخ مستودع القالب، شغل npm install لإعداد التبعيات، ولديك هيكل مشروع جاهز للاستخدام مع مجلدات مصدر منفصلة للعميل، والخادم، والمشترك. يتضمن القالب تكوين webpack الذي يحول TypeScript إلى حزم JavaScript متوافقة مع FiveM، مع تعريفات نوع لـ FiveM natives، ودوال citizen، وواجهات برمجة التطبيقات الشائعة للإطار. ابنِ مشروعك باستخدام npm run build ويتم الإخراج مباشرة إلى مجلد مورد.

تعريفات وأنواع Type

ال @citizenfx/client و @citizenfx/server توفر حزم type تعريفات TypeScript لجميع دوال FiveM الأصلية واستدعاءات API. تتيح هذه التعريفات الإكمال التلقائي للدوال مثل GetEntityCoords, SetEntityHealth، و RegisterCommand، يعرض لك أنواع المعلمات وقيم الإرجاع أثناء الترميز. بالنسبة لواجهات برمجة التطبيقات الخاصة بالأطر مثل QBCore أو ESX، يمكنك إنشاء أو تثبيت ملفات تعريف نوع إضافية تغطي تصديرات وإحداثيات الإطار. هذا يحول بيئة التطوير المتكاملة الخاصة بك إلى متصفح توثيق تفاعلي لكامل API الخاص بـ FiveM.

هيكلية العميل والخادم

هيكل مشروع TypeScript الخاص بك بفصل واضح بين كود العميل والخادم. استخدم الدليل المشترك للواجهات، والعدديّات، ودوال المرافق التي يحتاجها الجانبان. عرّف واجهات حمولة الأحداث في أنواع مشتركة حتى يتحقق المترجم من اتفاق العميل والخادم على أشكال البيانات. استورد أُطُر العمل من طبقة الخدمات التي تُجرد الإطار الأساسي، مما يجعل منطق عملك قابلاً للنقل عبر QBCore وESX والإعدادات المستقلة. تجعل هذه البنية قاعدة الكود الخاصة بك معيارية وقابلة للاختبار.

تصحيح TypeScript في FiveM

تصحيح الكود المترجم يمكن أن يكون تحديًا لأن جافا سكريبت المنفذة تختلف عن مصدر TypeScript الخاص بك. فعّل خرائط المصدر في تكوين webpack الخاص بك بحيث تشير تتبعات الأخطاء إلى ملفات TypeScript الأصلية. استخدم console.log بيانات يتم إعادة توجيهها إلى وحدة تحكم خادم FiveM لتصحيح أخطاء جانب الخادم. لتصحيح أخطاء جانب العميل، يمكن لأدوات مطور NUI التي يمكن الوصول إليها عبر F8 فحص تنفيذ JavaScript. فكر في إضافة أداة تسجيل منظمة تتضمن الطوابع الزمنية، مستويات السجل، ومراجع ملفات المصدر لتسهيل تتبع المشكلات عبر المخرجات المجمعة.

الهجرة والتعايش مع Lua

لا تحتاج إلى تحويل خادمك بالكامل إلى TypeScript دفعة واحدة. تتعايش موارد TypeScript بشكل مثالي مع موارد Lua لأنها تتواصل عبر نفس نظام الأحداث والتصدير. ابدأ ببناء ميزات جديدة في TypeScript مع الحفاظ على السكربتات الحالية بلغة Lua. عند استدعاء تصديرات Lua من TypeScript، أنشئ إعلانات نوع تصف توقيعات الدوال المتوقعة. قم بترحيل الأنظمة الحرجة تدريجيًا مع اكتساب الثقة في سير عمل TypeScript. تتيح هذه الطريقة التدريجية لفريقك تعلم TypeScript مع الحفاظ على استقرار الخادم وتجنب إعادة كتابة كاملة محفوفة بالمخاطر.

جاهز للبدء؟

احصل على السكربتات من متجرنا، أو انضم إلى Discord للدعم والتحديثات ونظرة على ما هو قادم.