بالمعنى البسيط Typescript هو Javascript مع العديد من الميزات الإضافية التي من شأنها تقليل الأخطاء (bugs) في الكود و المساعدة في جعل الكود أكثر قابلية للقراءة. الميزة الاساسية التي يأتي بها Typescript هو ( Type system) .
بدأ من بدايته المتواضعة قبل ٢٠ سنة كلغة برمجة بسيطة لاضافة تفاعل يمكن أن يقال عنها تافه على صفحات الويب بكتابة أسطر قليلة من الكود. نمت جافاسكربت لتصبح ذات شعبية كبيرة بين المبرمجين من كونها حبيسة بيئة المتصفح لتستخدم على السيرفر باستخدام Nodejs (قبل Nodejs لم تكن هناك طريقة تشغيل جافاسكربت خارج المتصفح) واليوم هناك عدد كبير من المبرمجين حول العالم يعتمدون على جافاسكربت فقط لبناء تطبيقات كاملة من الواجه المستخدم (Front-end) حتى الواجهه الخلفية (Back-end) .
كل لغة لها مراوغاته الخاصة - شذوذ ومفاجآت ، وبداية جافا سكريبت المتواضعة تجعلها تحتوي على العديد من هذه الأمور. بعض الأمثلة:
يرجع عامل المساواة في JavaScript (==) نتائج غير منطقة احيانا:
if ("" == 0) {
//اي كود هنا سوف يتم تنفيذه لأن الشرط في الأعلي = true . لكن لماذا؟
}
if (1 < x < 3) {
// True for *any* value of x!
// يرجع true لاي قيمة يوضع مكان x !
}
تسمح JavaScript أيضًا بالوصول إلى الخصائص غير الموجودة:
const obj = { width: 10, height: 15 };
// خطاء في كتابة height في السطر الرابع
const area = obj.width * obj.heigth;
معظم لغات البرمجة سوف تظهر خطأ (Error) عند حدوث هذه الأنواع من الأخطاء . عند كتابة كود لبرامج صغيرة ، تكون هذه الأخطاء مزعجة ولكن يمكن التحكم فيها ؛ عند كتابة كود التطبيق بمئات أو آلاف الأسطر من الأكواد البرمجية ، فإن هذه الأخطاء تمثل مشكلة خطيرة. لذا قامت مايكروسوفت بتصميم typescript لتكون مناسبة للعمل على المشاريع الكبيرة التي تتضمن كتابة آلاف الأسطر من الأكواد.
TypeScript: مدقق نوع ثابت
الهدف من TypeScript هو أن يكون فاحصًا ثابتًا (static typechecker ) للاكواد في JavaScript - بمعنى آخر ، أداة يتم تشغيلها قبل تشغيل الكود للتأكد من الخلو الكود من الأخطاء (bugs)
على سبيل المثال ، يحتوي المثال الأخير أعلاه على خطأ بسبب نوع obj
.هو ذا هو الخطأ الذي وجده TypeScript
const obj = { width: 10, height: 15 };
const area = obj.width * obj.heigth;
Property 'heigth' does not exist on type '{ width: number; height: number; }'. Did you mean 'height'?
عند استخدام مكتبات جافاسكربت في اي مشروع ، بدلا من التنقل بين محرر الأكواد الي موقع المكتبه لقراءة ال documentation ، typescript يوفر لك توثيق للمكتبات داخل محرر الأكواد.
و يمكن تحويلها أكواد typescript الي نسخ مختلفة من إصدارات جافاسكربت باستخدام الامر tsc
Typescript تقدم العديد من الميزات التي من شأنها جعل جودة الأكواد التي تكتبها افضل و يمكن قرأتها و فهما من قبل المطورين الأخرين بسهوله. في البداية كنت اتجنب تعلم TypeScript لأني لا احب كتابة مزيدا من الأكواد مثلي مثل الكثير من المبرمجين و في الحقيقة لم أعرف اكن اعرف ما الفائدة منها باساس ، لأن انا استخدمها في كل مشاريعي البرمجة بدلا عن جافاسكربت.