تايب سكريبت
TypeScript تايب اسكربت هي لغة برمجةمفتوحة المصدر تم تطويرها وصيانتها بواسطة Microsoft . لغة برمجةمايكروسوفتهو مجموعة شاملة من نصوصجافا سكريبت صارمة ، ويضيف كتابة ثابتة اختيارية للغة. وقد عمل Anders Hejlsberg ، المهندس الرئيسي لـ C # ومبدع Delphi و Turbo Pascal ، على تطوير TypeScript. يمكن استخدام TypeScript لتطوير تطبيقات JavaScript للتنفيذ من جانب العميل أو من جانب الخادم ( Node.js ).
تم تصميم نسخة مطبوعة على الآلة الكاتبة لتطوير التطبيقات الكبيرة و يجمع إلى جافا سكريبت. بما أن TypeScript عبارة عن مجموعة كبيرة من JavaScript ، فإن برامج JavaScript الموجودة هي أيضًا برامج TypeScript صالحة.
يدعم TypeScript ملفات التعريف التي يمكن أن تحتوي على معلومات الكتابة الخاصة بمكتبات JavaScript الموجودة ، مثلما يمكن أن تصف ملفات رؤوس C ++ بنية ملفات الكائن الموجودة . وهذا يمكّن البرامج الأخرى من استخدام القيم المعرفة في الملفات كما لو كانت مكتوبة بشكل ثابت كيانات TypeScript. هناك ملفات رأس طرف ثالث للمكتبات شعبية مثل مسج ، MongoDB ، و D3.js . تتوفر أيضًا رؤوس TypeScript للوحدات الأساسية Node.js ، مما يسمح بتطوير برامج Node.js في TypeScript.
مترجم نسخة مطبوعة على الآلة الكاتبة هو في حد ذاته مكتوبة في نسخة مطبوعة على الآلة الكاتبة و المترجمة إلى جافا سكريبت. مرخص بموجب ترخيص Apache 2 .
يتم تضمين TypeScript لغة برمجة من الدرجة الأولى في Microsoft Visual Studio 2013 Update 2 والإصدارات الأحدث ، بجانب C # ولغات Microsoft الأخرى. يسمح ملحق رسمي لبرنامج Visual Studio 2012 بدعم TypeScript أيضًا.
تم إصدار TypeScript لأول مرة في أكتوبر 2012 (الإصدار 0.8) ، بعد عامين من التطوير الداخلي في Microsoft. بعد فترة وجيزة من الإعلان ، أشاد ميجيل دي إيكازا باللغة نفسها ، لكنه انتقد عدم وجود دعم IDE الناضج بعيدًا عن Microsoft Visual Studio ، والذي لم يكن متاحًا على Linux و OS X في ذلك الوقت. هناك دعم في IDEs أخرى ، لا سيما في Eclipse ، من خلال المكونات الإضافية التي ساهمت بها Palantir Technologies . محررات النصوص المختلفة ، بما في ذلك Emacs و Vim و Sublime و Webstorm و Atom و Microsoftميجيل دي إيكازامايكروسوفت فيجوال ستوديو إكلبسإيماكسفيمسابليم تكستأتومكما يدعم Visual Studio Code TypeScript.
قام TypeScript 0.9 ، الذي صدر في عام 2013 ، بإضافة دعم للأدوية. تم إصدار TypeScript 1.0 في مؤتمر Microsoft Build المطور في عام 2014. يوفر Visual Studio 2013 Update 2 دعمًا مضمنًا لـ TypeScript.
في يوليو 2014 ، أعلن فريق التطوير عن مترجم جديد لـ TypeScript ، مدعياً مكاسب أداء 5 ×. في الوقت نفسه ، تم نقل شفرة المصدر ، التي استضافت في البداية على CodePlex ، إلى GitHub .
في 22 سبتمبر 2016 ، تم إصدار TypeScript 2.0 ؛ قدم العديد من الميزات ، بما في ذلك قدرة المبرمجين على منع المتغيرات بشكل اختياري من تعيين قيم.
نشأت TypeScript من أوجه القصور المتصورة في جافا سكريبت لتطوير التطبيقات واسعة النطاق سواء في Microsoft أو بين عملائها الخارجيين. أدت التحديات في التعامل مع شفرة جافا سكريبت المعقدة إلى الطلب على الأدوات المخصصة لتسهيل تطوير المكونات في اللغة.
سعى مطورو TypeScript إلى حل لا يكسر التوافق مع المعيار ودعمه عبر الأنظمة الأساسية. مع العلم أن الاقتراح القياسي الحالي ECMAScript وعدت الدعم المستقبلي للبرمجة القائمة على الطبقة ، واستند TypeScript على هذا الاقتراح. أدى ذلك إلى مترجم جافا سكريبت مع مجموعة من الامتدادات اللغوية النحوية ، وهي مجموعة كبيرة تعتمد على الاقتراح ، والتي تحول الإضافات إلى جافا سكريبت عادية. من هذا المنطلق ، كان TypeScript بمثابة معاينة لما يمكن توقعه من ECMAScript 2015. والجانب الفريد ليس في الاقتراح ، ولكنه تمت إضافته إلى TypeScript ، هو كتابة ثابتة اختيارية تمكن تحليل اللغة الثابت ، مما يسهل الأدوات ودعم IDE.
تضيف TypeScript الدعم إلى ميزات مثل الفئات والوحدات النمطية وبناء جملة دالة السهم كما هو مقترح في معيار ECMAScript 2015.
TypeScript هو ملحق لغة يضيف ميزات إلى ECMAScript 5. وتتضمن الميزات الإضافية:
يتم إرجاع الميزات التالية من ECMAScript 2015:
من الناحية النحوية ، تكون TypeScript مشابهة جدًا لـ JScript. NET ، وهو تطبيق Microsoft آخر لمقياس اللغة ECMA-262 الذي أضاف دعمًا للكتابة الثابتة وخصائص اللغة الكلاسيكية المنحى على الكائنات مثل الفصول الدراسية ، وراثة ، وواجهات ، ومساحات الأسماء.
TypeScript عبارة عن مجموعة شاملة جدًا من ECMAScript 2015 ، والتي تعد بحد ذاتها مجموعة شاملة من ECMAScript 5 ، والتي يشار إليها عادةً باسم JavaScript. على هذا النحو ، يعد برنامج JavaScript أيضًا برنامج TypeScript صالحًا ، ويمكن لبرنامج TypeScript أن يستهلك جافا سكريبت بسلاسة. بشكل افتراضي ، يستهدف المحول البرمجي ECMAScript 5 ، المعيار السائد الحالي ، ولكنه قادر أيضًا على إنشاء التركيبات المستخدمة في ECMAScript 3 أو 2015.
باستخدام TypeScript ، من الممكن استخدام شفرة JavaScript الموجودة ، وتضمين مكتبات JavaScript الشائعة ، والاتصال بالكود المتولد من TypeScript من JavaScript أخرى. يتم توفير تعريفات النوع لهذه المكتبات مع شفرة المصدر.
يوفر TypeScript الكتابة الثابتة عبر التعليقات التوضيحية للنوع لتمكين الكتابة من التحقق في وقت التحويل البرمجي . هذا أمر اختياري ويمكن تجاهله لاستخدام الكتابة الديناميكية الدورية لجافا سكريبت.شروح لأنواع بدائية هي codice_1، codice_2و codice_3. البنى الضعيفة أو الديناميكية هي من النوع codice_4.
يمكن تصدير التعليقات التوضيحية إلى "ملف تعريفات" منفصل لتوفير معلومات الكتابة للنصوص النصية لـ TypeScript باستخدام الأنواع التي تم تجميعها بالفعل في JavaScript. يمكن الإعلان عن التعليقات التوضيحية لمكتبة جافا سكريبت الحالية ، كما تم القيام به لـ Node.js و jQuery .
يستخدم برنامج التحويل البرمجي لـ TypeScript من نوع الاستدلال لاكتشاف الأنواع عندما لا يتم إعطاء الأنواع. على سبيل المثال ، codice_5يمكن الاستدلال على الطريقة الواردة في التعليمة البرمجية أعلاه كإعادة codice_1ولو لم يتم تقديم تعليق توضيحي لنوع الإرجاع. ويستند هذا على أنواع ثابتة codice_7و codice_8يجري codice_9، والمعرفة المترجم أن نتيجة إضافة اثنين codice_9هي دائما codice_1. ومع ذلك ، فإن التصريح بوضوح بنوع الإرجاع يسمح للمترجم بالتحقق من صحته.
إذا لم يكن بالإمكان الاستدلال على أي نوع بسبب نقص الإعلانات ، فإنه يتم تعيينه افتراضيًا إلى codice_4النوع الديناميكي . تدعم قيمة codice_4النوع العمليات نفسها كقيمة في JavaScript ويتم تنفيذ فحص الحد الأدنى من النوع الثابت لعمليات على codice_4القيم.
عند تجميع برنامج نصي لـ TypeScript ، يوجد خيار لإنشاء "ملف" تعريف (مع الامتداد codice_15) يعمل كواجهة إلى المكونات في جافا سكريبت المترجمة. في هذه العملية ، يقوم المترجم بإبعاد جميع هيئات الدالة والوظيفية ويحفظ فقط تواقيع الأنواع التي يتم تصديرها. يمكن بعد ذلك استخدام ملف التصريح الناتج لوصف أنواع TypeScript الظاهرية المصدرة لمكتبة جافا سكريبت أو وحدة نمطية عندما يستهلكها مطور خارجي من TypeScript.
يتشابه مفهوم ملفات التعريف مع مفهوم ملف الرأس الموجود في C / C ++ .يمكن كتابة ملفات تعريف النوع يدويًا لمكتبات JavaScript الحالية ، كما تم القيام به لـ jQuery و Node.js.
يتم استضافة مجموعات كبيرة من ملفات التصريح لمكتبات JavaScript الشائعة على GitHub في DefinitelyTyped و Typings Registry . يتم توفير أداة مساعدة لسطر الأوامر تسمى codice_16للمساعدة في البحث
يدعم TypeScript فئات ECMAScript 2015 التي تدعم دعم التعليقات التوضيحية بالنوع الاختياري.
يدعم TypeScript البرمجة العامة .
يميز TypeScript بين الوحدات ومساحات الأسماء. كلتا الميزتين في دعم TypeScript يدعمان الطبقات والواجهات والوظائف والمتغيرات في الحاويات. تستخدم مساحات الأسماء (الوحدات الداخلية سابقًا) تعبير الدالة المستدعى على الفور من JavaScript لتغليف التعليمات البرمجية ، بينما تستخدم الوحدات النمطية (وحدات خارجية سابقًا) أنماط مكتبة جافا سكريبت للقيام بذلك ( AMD أو CommonJS ).
مترجم نسخة مطبوعة على الآلة الكاتبة، واسمه codice_17هو، وكتب في نسخة مطبوعة على الآلة الكاتبة . ونتيجة لذلك ، يمكن تجميعها في جافا سكريبت عادية ويمكن بعد ذلك تنفيذها في أي محرك جافا سكريبت (على سبيل المثال ، متصفح). تأتي حزمة برنامج التحويل البرمجي مجمعة مع مضيف برنامج نصي يمكنه تنفيذ المحول البرمجي. وهو متوفر أيضًا كحزمة Node.js التي تستخدم Node.js كمضيف.
يوجد أيضًا إصدار ألفا من برنامج التحويل البرمجي من جانب العميل في جافا سكريبت ، والذي ينفذ شفرة TypeScript على الفور ، عند تحميل الصفحة.
يدعم الإصدار الحالي من المحول البرمجي ECMAScript 5 بشكل افتراضي. يُسمح للخيار باستهداف ECMAScript 2015 للاستفادة من ميزات اللغة الخاصة بهذا الإصدار (مثل المولدات). تتوفر الفصول ، على الرغم من كونها جزءًا من معيار ECMAScript 2015 ، في كلا الوضعين.باستخدام المكونات الإضافية ، يمكن دمج TypeScript مع أدوات التنفيذ التلقائي ، بما في ذلك Grunt (grunt-ts ) و Apache Maven (TypeScript Maven Plugin ) و Gulp (gulp -typescript ) و Gradle (TypeScript Gradle Plugin ).