اذا لم تجد ما تبحث عنه يمكنك استخدام كلمات أكثر دقة.
تايب اسكربت هو ملحق لغة يضيف ميزات إلى إي سي إم ايه سكريبت 5. وتتضمن الميزات الإضافية:
يتم إرجاع الميزات التالية من ECMAScript 2015:
من الناحية النحوية، تكون تايب اسكربت مشابهة جدًا لـ جسكربت .نت، وهو تطبيق مايكروسوفت آخر لمقياس اللغة ECMA-262 الذي أضاف دعمًا للكتابة الثابتة وخصائص اللغة الكلاسيكية المنحى على الكائنات مثل الفصول الدراسية، وراثة، وواجهات، ومساحات الأسماء.
تايب اسكربت عبارة عن مجموعة شاملة جدًا من إي سي إم ايه سكريبت 2015 ، والتي تعد بحد ذاتها مجموعة شاملة من ECMAScript 5 ، والتي يشار إليها عادةً باسم جافا سكريبت. على هذا النحو، يعد برنامج جافا سكريبت أيضًا برنامج تايب اسكربت صالحًا، ويمكن لبرنامج تايب اسكربت أن يستهلك جافا سكريبت بسلاسة. بشكل افتراضي، يستهدف المحول البرمجي ECMAScript 5 ، المعيار السائد الحالي، ولكنه قادر أيضًا على إنشاء التركيبات المستخدمة في ECMAScript 3 أو 2015.
باستخدام تايب اسكربت ، من الممكن استخدام شفرة جافا سكريبت الموجودة، وتضمين مكتبات جافا سكريبت الشائعة، والاتصال بالكود المتولد من تايب اسكربت من جافا سكريبت أخرى. يتم توفير تعريفات النوع لهذه المكتبات مع شفرة المصدر.
يوفر تايب اسكربت الكتابة الثابتة عبر التعليقات التوضيحية للنوع لتمكين الكتابة من التحقق في وقت التحويل البرمجي . هذا أمر اختياري ويمكن تجاهله لاستخدام الكتابة الديناميكية الدورية لجافا سكريبت.
function add(left: number, right: number): number { return left + right; }
شروح لأنواع بدائية هي number، booleanو string. البنى الضعيفة أو الديناميكية هي من النوع any.
يمكن تصدير التعليقات التوضيحية إلى ملف تعريفات منفصل لتوفير معلومات الكتابة للنصوص النصية لـ تايب اسكربت باستخدام الأنواع التي تم تجميعها بالفعل في جافا سكريبت. يمكن الإعلان عن التعليقات التوضيحية لمكتبة جافا سكريبت الحالية، كما تم القيام به لـ نود.جي إس و جي كويري .
يستخدم برنامج التحويل البرمجي لـ تايب اسكربت من نوع الاستدلال لاكتشاف الأنواع عندما لا يتم إعطاء الأنواع. على سبيل المثال، addيمكن الاستدلال على الطريقة الواردة في التعليمة البرمجية أعلاه كإعادة numberولو لم يتم تقديم تعليق توضيحي لنوع الإرجاع. ويستند هذا على أنواع ثابتة leftو rightيجري numbers، والمعرفة المترجم أن نتيجة إضافة اثنين numbersهي دائما number. ومع ذلك، فإن التصريح بوضوح بنوع الإرجاع يسمح للمترجم بالتحقق من صحته.
إذا لم يكن بالإمكان الاستدلال على أي نوع بسبب نقص الإعلانات، فإنه يتم تعيينه افتراضيًا إلى anyالنوع الديناميكي . تدعم قيمة anyالنوع العمليات نفسها كقيمة في جافا سكريبت ويتم تنفيذ فحص الحد الأدنى من النوع الثابت لعمليات على anyالقيم.
عند تجميع برنامج نصي لـ تايب اسكربت، يوجد خيار لإنشاء ملف تعريف (مع الامتداد .d.ts) يعمل واجهة (حوسبة) إلى هندسة البرمجيات بالمكونات في جافا سكريبت المترجمة. في هذه العملية، يقوم المترجم بإبعاد جميع هيئات الدالة والوظيفية ويحفظ فقط تواقيع الأنواع التي يتم تصديرها. يمكن بعد ذلك استخدام ملف التصريح الناتج لوصف أنواع تايب اسكربت الظاهرية المصدرة لمكتبة جافا سكريبت أو وحدة نمطية عندما يستهلكها مطور خارجي من تايب اسكربت.
يتشابه مفهوم ملفات التعريف مع مفهوم ملف الرأس الموجود في C / C ++ .
declare module arithmetics { add(left: number, right: number): number; subtract(left: number, right: number): number; multiply(left: number, right: number): number; divide(left: number, right: number): number; }
يمكن كتابة ملفات تعريف النوع يدويًا لمكتبات جافا سكريبت الحالية، كما تم القيام به لـ jQuery و Node.js.
يتم استضافة مجموعات كبيرة من ملفات التصريح لمكتبات جافا سكريبت الشائعة على GitHub في DefinitelyTyped و Typings Registry . يتم توفير أداة مساعدة لسطر الأوامر تسمى typingsللمساعدة في البحث
يدعم تايب اسكربت فئات ECMAScript 2015 التي تدعم دعم التعليقات التوضيحية بالنوع الاختياري.
class Person { private name: string; private age: number; private salary: number; constructor(name: string, age: number, salary: number) { this.name = name; this.age = age; this.salary = salary; } toString(): string { return `${this.name} (${this.age}) (${this.salary})`; // As of version 1.4 } }
يدعم تايب اسكربت البرمجة العامة .
يميز تايب اسكربت بين الوحدات ومساحات الأسماء. كلتا الميزتين في دعم تايب اسكربت يدعمان الطبقات والواجهات والوظائف والمتغيرات في الحاويات. تستخدم مساحات الأسماء (الوحدات الداخلية سابقًا) تعبير الدالة المستدعى على الفور من جافا سكريبت لتغليف التعليمات البرمجية، بينما تستخدم الوحدات النمطية (وحدات خارجية سابقًا) أنماط مكتبة جافا سكريبت للقيام بذلك ( AMD أو CommonJS ).