Loading AI tools
لغة برمجة من ويكيبيديا، الموسوعة الحرة
تايب اسكربت (بالإنجليزية: TypeScript) هي لغة برمجة مفتوحة المصدر تم تطويرها وصيانتها بواسطة مايكروسوفت، وهي مجموعة شاملة من نصوص جافا سكريبت الصارمة، ويضيف كتابة ثابتة اختيارية للغة. وقد عمل أندرس هيلسبرغ ، المهندس الرئيسي لـ سي شارب ومبدع أوبجكت باسكال وتوربو باسكال، على تطوير تايب اسكربت.[5][6][7][8] يمكن استخدام تايب اسكربت لتطوير تطبيقات جافا سكريبت للتنفيذ من جانب العميل أو من جانب الخادم ( نود.جي إس ).
التصنيف | |
---|---|
التنميط | |
ظهرت في | |
صممها | |
الرخصة |
المطور | |
---|---|
الإصدار الأول | |
الإصدار الأخير | |
المستودع |
مشتقة من | |
---|---|
متأثرة بـ |
امتدادات الملفات | |
---|---|
موقع الويب |
تم تصميم نسخة مطبوعة على الآلة الكاتبة لتطوير التطبيقات الكبيرة و يجمع إلى جافا سكريبت.[9] بما أن تايب اسكربت عبارة عن مجموعة كبيرة من جافا سكريبت ، فإن برامج جافا سكريبت الموجودة هي أيضًا برامج تايب اسكربت صالحة.
يدعم تايب اسكربت ملفات التعريف التي يمكن أن تحتوي على معلومات الكتابة الخاصة بمكتبات جافا سكريبت الموجودة، مثلما يمكن أن تصف ملفات رؤوس سي++ بنية ملفات الكائن الموجودة . وهذا يمكّن البرامج الأخرى من استخدام القيم المعرفة في الملفات كما لو كانت مكتوبة بشكل ثابت كيانات تايب اسكربت. هناك ملفات رأس طرف ثالث للمكتبات شعبية مثل مسج ، مونغو دي بي ، و د3 (إطار جافا سكريبت) . تتوفر أيضًا رؤوس تايب اسكربت للوحدات الأساسية نود.جي إس ، مما يسمح بتطوير برامج نود.جي إس في تايب اسكربت.[10]
مترجم نسخة مطبوعة على الآلة الكاتبة هو في حد ذاته مكتوبة في نسخة مطبوعة على الآلة الكاتبة و المترجمة إلى جافا سكريبت. مرخص بموجب ترخيص رخصة أباتشي .
يتم تضمين تايب اسكربت لغة برمجة من الدرجة الأولى في مايكروسوفت فيجوال ستوديو 2013 Update 2 والإصدارات الأحدث، بجانب سي شارب ولغات مايكروسوفت الأخرى.[11] يسمح ملحق رسمي لبرنامج مايكروسوفت فيجوال ستوديو 2012 بدعم تايب اسكربت أيضًا.[12]
تم إصدار تايب اسكربت لأول مرة في أكتوبر 2012 (الإصدار 0.8) ، بعد عامين من التطوير الداخلي في مايكروسوفت. بعد فترة وجيزة من الإعلان، أشاد ميجيل دي إيكازا باللغة نفسها، لكنه انتقد عدم وجود دعم IDE الناضج بعيدًا عن مايكروسوفت فيجوال ستوديو ، والذي لم يكن متاحًا على Linux و OS X في ذلك الوقت. اعتبارًا من 2013[تحديث] هناك دعم في IDEs أخرى، لا سيما في اكبلس ، من خلال المكونات الإضافية التي ساهمت بها Palantir Technologies . محررات النصوص المختلفة، بما في ذلك ايماكس وفيم وسابليم تكست و Webstorm و أتوم و مايكروسوفت[13][14]ميجيل دي إيكازامايكروسوفت فيجوال ستوديو[15][16] اعتبارًا من 2013[تحديث]إكلبس[17][18]إيماكسفيمسابليم تكستأتوم[19] كما يدعم Visual Studio Code تايب اسكربت.[20]
قام تايب اسكربت 0.9 ، الذي صدر في عام 2013 ، بإضافة دعم للأدوية.[21] تم إصدار تايب اسكربت 1.0 في مؤتمر مايكروسوفت Build المطور في عام 2014. يوفر [22] مايكروسوفت فيجوال ستوديو 2013 Update 2 دعمًا مضمنًا لـ تايب اسكربت.[23]
في يوليو 2014 ، أعلن فريق التطوير عن مترجم جديد لـ تايب اسكربت ، مدعياً مكاسب أداء 5 ×. في الوقت نفسه، تم نقل شفرة المصدر، التي استضافت في البداية على كود بلاكس ، إلى غيت هاب .[24]
في 22 سبتمبر 2016 ، تم إصدار تايب اسكربت 2.0 ؛ قدم العديد من الميزات، بما في ذلك قدرة المبرمجين على منع المتغيرات بشكل اختياري من تعيين null
قيم.[25]
نشأت تايب اسكربت من أوجه القصور المتصورة في جافا سكريبت لتطوير التطبيقات واسعة النطاق سواء في مايكروسوفت أو بين عملائها الخارجيين.[26] أدت التحديات في التعامل مع شفرة جافا سكريبت المعقدة إلى الطلب على الأدوات المخصصة لتسهيل تطوير المكونات في اللغة.[27]
سعى مطورو تايب اسكربت إلى حل لا يكسر التوافق مع المعيار ودعمه عبر الأنظمة الأساسية. مع العلم أن الاقتراح القياسي الحالي ECMAScript وعدت الدعم المستقبلي للبرمجة القائمة على الطبقة، واستند تايب اسكربت على هذا الاقتراح. أدى ذلك إلى مترجم جافا سكريبت مع مجموعة من الامتدادات اللغوية النحوية، وهي مجموعة كبيرة تعتمد على الاقتراح، والتي تحول الإضافات إلى جافا سكريبت عادية. من هذا المنطلق، كان تايب اسكربت بمثابة معاينة لما يمكن توقعه من ECMAScript 2015. والجانب الفريد ليس في الاقتراح، ولكنه تمت إضافته إلى تايب اسكربت ، هو كتابة ثابتة اختيارية [28] تمكن تحليل اللغة الثابت، مما يسهل الأدوات ودعم IDE.
تضيف تايب اسكربت الدعم إلى ميزات مثل الفئات والوحدات النمطية وبناء جملة دالة السهم كما هو مقترح في معيار ECMAScript 2015
أصبح استخدام ملفات التصريحات سهلًا جدًّا منذ النسخة 2.0 من تايب سكريبت، إذ أصبح الحصول عليها واستخدامها والعثور عليها أبسط من ذي قبل. ستساعدك هذه الصفحة على القيام بهذه العمليات الثلاث.
تنزيل ملفات التصريحات
على سبيل المثال، يمكن الحصول على التصريحات لمكتبةٍ مثل lodash ببساطة بالأمر التالي فقط:
npm install --save @types/lodash
من الجدير بالذكر أنّ تنزيل حزمةِ @types
لمكتبةٍ غير ضروري إذا كانت حزمة مدير حزمة العقدة تُحزِّم ملفّ تصريحاتها، كما وصفنا في صفحة نشر ملفات التصريحات.
بعد الخطوة السابقة، يمكنك استخدام lodash في شيفرة تايب سكريبت مباشرةً. ويمكنك الاعتماد عليها في الوحدات والشيفرة العامة (global code) كذلك.
مثلًا، بعد تثبيت تصريحاتك باستخدام npm install
، يمكنك استعمال المكتبة كالتالي:
import * as _ from "lodash";
_.padStart("Hello TypeScript!", 20, " ");
وإن كنت لا تستخدم الوحدات، فيمكنك فقط استعمال المتغير العام الذي توفره المكتبة (_
في مكتبة lodash):
_.padStart("Hello TypeScript!", 20, " ");
تحمل حزم تصريحات الأنواع في أغلب الأحوال نفسَ اسم الحزمة على npm
، لكن مع السابقة @types/
، لكن إن احتجت إلى البحث عنها، فاستعمل محرك البحث هذا للبحث عن الحزمة لمكتبتك.
تايب اسكربت هو ملحق لغة يضيف ميزات إلى إي سي إم ايه سكريبت 5. وتتضمن الميزات الإضافية:
يتم إرجاع الميزات التالية من ECMAScript 2015:
من الناحية النحوية، تكون تايب اسكربت مشابهة جدًا لـ جسكربت .نت، وهو تطبيق مايكروسوفت آخر لمقياس اللغة ECMA-262 الذي أضاف دعمًا للكتابة الثابتة وخصائص اللغة الكلاسيكية المنحى على الكائنات مثل الفصول الدراسية، وراثة، وواجهات، ومساحات الأسماء.
تايب اسكربت عبارة عن مجموعة شاملة جدًا من إي سي إم ايه سكريبت 2015 ، والتي تعد بحد ذاتها مجموعة شاملة من ECMAScript 5 ، والتي يشار إليها عادةً باسم جافا سكريبت.[30] على هذا النحو، يعد برنامج جافا سكريبت أيضًا برنامج تايب اسكربت صالحًا، ويمكن لبرنامج تايب اسكربت أن يستهلك جافا سكريبت بسلاسة. بشكل افتراضي، يستهدف المحول البرمجي ECMAScript 5 ، المعيار السائد الحالي، ولكنه قادر أيضًا على إنشاء التركيبات المستخدمة في ECMAScript 3 أو 2015.
باستخدام تايب اسكربت ، من الممكن استخدام شفرة جافا سكريبت الموجودة، وتضمين مكتبات جافا سكريبت الشائعة، والاتصال بالكود المتولد من تايب اسكربت من جافا سكريبت أخرى.[31] يتم توفير تعريفات النوع لهذه المكتبات مع شفرة المصدر.
يوفر تايب اسكربت الكتابة الثابتة عبر التعليقات التوضيحية للنوع لتمكين الكتابة من التحقق في وقت التحويل البرمجي . هذا أمر اختياري ويمكن تجاهله لاستخدام الكتابة الديناميكية الدورية لجافا سكريبت.
function add(left: number, right: number): number
{
return left + right;
}
شروح لأنواع بدائية هي number
، boolean
و string
. البنى الضعيفة أو الديناميكية هي من النوع any
.
يمكن تصدير التعليقات التوضيحية إلى ملف تعريفات منفصل لتوفير معلومات الكتابة للنصوص النصية لـ تايب اسكربت باستخدام الأنواع التي تم تجميعها بالفعل في جافا سكريبت. يمكن الإعلان عن التعليقات التوضيحية لمكتبة جافا سكريبت الحالية، كما تم القيام به لـ نود.جي إس وجي كويري .
يستخدم برنامج التحويل البرمجي لـ تايب اسكربت من نوع الاستدلال لاكتشاف الأنواع عندما لا يتم إعطاء الأنواع. على سبيل المثال، add
يمكن الاستدلال على الطريقة الواردة في التعليمة البرمجية أعلاه كإعادة number
ولو لم يتم تقديم تعليق توضيحي لنوع الإرجاع. ويستند هذا على أنواع ثابتة left
و right
يجري numbers
، والمعرفة المترجم أن نتيجة إضافة اثنين numbers
هي دائما number
. ومع ذلك، فإن التصريح بوضوح بنوع الإرجاع يسمح للمترجم بالتحقق من صحته.
إذا لم يكن بالإمكان الاستدلال على أي نوع بسبب نقص الإعلانات، فإنه يتم تعيينه افتراضيًا إلى any
النوع الديناميكي . تدعم قيمة any
النوع العمليات نفسها كقيمة في جافا سكريبت ويتم تنفيذ فحص الحد الأدنى من النوع الثابت لعمليات على any
القيم.[32]
عند تجميع برنامج نصي لـ تايب اسكربت، يوجد خيار لإنشاء ملف تعريف (مع الامتداد .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
}
}
يدعم تايب اسكربت البرمجة العامة .[33]
يميز تايب اسكربت بين الوحدات ومساحات الأسماء. كلتا الميزتين في دعم تايب اسكربت يدعمان الطبقات والواجهات والوظائف والمتغيرات في الحاويات. تستخدم مساحات الأسماء (الوحدات الداخلية سابقًا) تعبير الدالة المستدعى على الفور من جافا سكريبت لتغليف التعليمات البرمجية، بينما تستخدم الوحدات النمطية (وحدات خارجية سابقًا) أنماط مكتبة جافا سكريبت للقيام بذلك ( AMD أو CommonJS ).[34]
مترجم نسخة مطبوعة على الآلة الكاتبة، واسمه tsc
هو، وكتب في نسخة مطبوعة على الآلة الكاتبة . ونتيجة لذلك، يمكن تجميعها في جافا سكريبت عادية ويمكن بعد ذلك تنفيذها في أي محرك جافا سكريبت (على سبيل المثال، متصفح). تأتي حزمة برنامج التحويل البرمجي مجمعة مع مضيف برنامج نصي يمكنه تنفيذ المحول البرمجي. وهو متوفر أيضًا كحزمة نود.جي إس التي تستخدم Node.js كمضيف.
يوجد أيضًا إصدار ألفا من برنامج التحويل البرمجي من جانب العميل في جافا سكريبت، والذي ينفذ شفرة تايب اسكربت على الفور، عند تحميل الصفحة.[35]
يدعم الإصدار الحالي من المحول البرمجي ECMAScript 5 بشكل افتراضي. يُسمح للخيار باستهداف ECMAScript 2015 للاستفادة من ميزات اللغة الخاصة بهذا الإصدار (مثل المولدات). تتوفر الفصول، على الرغم من كونها جزءًا من معيار ECMAScript 2015 ، في كلا الوضعين.
باستخدام المكونات الإضافية ، يمكن دمج تايب اسكربت مع أدوات التنفيذ التلقائي، بما في ذلك Grunt (grunt-ts [39]) و أباتشي ميفن (تايب اسكربت Maven Plugin ) و Gulp (gulp [40]-تايب اسكربت [41]) و Gradle (تايب اسكربت Gradle Plugin [42]).
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.