محتويات الدورة

TypeScript / الأساسي / الدرس 1

فاحص الأنواع ومولّد الشيفرة وبيئة JavaScript

افصل فحص المصدر عن تنفيذ JavaScript وثبّت أساس المترجم وحدّد الافتراضات التابعة لبيئة التنفيذ.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • شرح تراكيب TypeScript التي تختفي عند التوليد.
  • تمييز هدف المترجم وتصريحات المكتبة ودعم التنفيذ.
  • ترجمة وتشغيل أمثلة مكتملة بخيارات صريحة.

الفحص والتنفيذ يجيبان عن سؤالين مختلفين

تفحص TypeScript البرنامج بنموذج ساكن لقيم JavaScript وقد تولد JavaScript للتنفيذ. تُمحى عادة معلمات الأنواع والواجهات؛ فلا تفحص البيئة واجهة لمجرد ورودها بالمصدر. يكشف الفاحص استعمالات غير متسقة ولا يفحص استجابة شبكة أو صلاحية وصول ولا يثبت غياب كل استثناء. تحدد JavaScript الحساب والتعديل والوصول للخصائص. افصل نجاح الفحص عن النتيجة التنفيذية عند التشخيص.

تحديد أساس للمترجم والبيئة

يفحص المقرر الأمثلة بالمترجم الرسمي TypeScript 5.7.3 وNode.js 22.23.3 مع توليد ES2022 CommonJS للأمثلة المستقلة. هذا أساس معلن لا ادعاء استخدام الأحدث. تُفعّل strict وnoUncheckedIndexedAccess وexactOptionalPropertyTypes وnoEmitOnError؛ فالخياران الإضافيان لا يدخلان تلقائيًا في strict. توفر تصريحات ES2022 وDOM أسماء مثل console للفحص ولا تثبّت واجهات المتصفح في Node. تستخدم البرامج مكونات متاحة فعلًا.

ملاحظة حساب محدد النوع

يمثل المثال وحدة كاملة لأن export {} يمنع مشاركة تصريحات السكربت العامة عرضيًا. تصف المعلمة نوع الإدخال وتعيد الدالة number. تختفي الأنواع بعد التوليد ويبقى الضرب والإخراج JavaScript عادية. تتفادى القيم الصغيرة مسائل الدقة. احفظ الأمثلة منفصلة وشغّل الناتج بعد نجاح الفحص. لا يثبت تلميح المحرر استخدام الطرفية للمترجم والإعداد والمصدر أنفسها.

typescript توجه الأنواع الفحص والقيم التنفيذ
export {};
function double(value: number): number { return value * 2; }
console.log(double(7));
الناتج المتوقع
14

يطبع الاستدعاء العددي المفحوص أربعة عشر، ولا تولد المعلمة كائن نوع تنفيذيًا.

تحديد إنتاج الملفات عند وجود أخطاء

يمكن ضبط المترجم للتوليد مع الأخطاء، فاستخدم noEmitOnError إذا لزم النجاح قبل الناتج. تفحص noEmit دون ملفات حين تتولى أداة أخرى التحويل. يختار target الصياغة الناتجة وlib التصريحات المرئية، ولا يوفران كل قدرة تنفيذ مفقودة. سجّل الأوامر واعتمادية المترجم المحلية. تناسب الخيارات الصريحة ملفًا معزولًا، وتقلل tsconfig وفحص استدعاء المشروع اختلافات التطبيقات المتعددة الملفات.

فحص قيمة JavaScript الباقية

تستخدم الواجهة في المثال لفحص كائن ثم تقرأ كائن JavaScript العادي نفسه. يعتمد الناتج على حقوله لا على بقاء الواجهة. لا تصلح المعلمة بايتات JSON غير موثوقة مختلفة البنية؛ وتشرح الدروس unknown والفحص الصريح. أعد المشكلة بأمر المترجم وتشخيصه وJavaScript وأمر تشغيلها. لا تعالج فشل التنفيذ بمجرد إضعاف الأنواع حتى يصمت الفاحص.

typescript واجهة مع بيانات تنفيذ عادية
export {};
interface Item { label: string; count: number }
const item: Item = { label: "cards", count: 3 };
console.log(`${item.count} ${item.label}`);
الناتج المتوقع
3 cards

يملك الكائن خاصيتين فعليتين، والواجهة وصف وقت الترجمة ولا توفر تحققًا تنفيذيًا.

الأخطاء الشائعة وإصلاحها

برنامج مفحوص يفشل لغياب واجهة.

لماذا يحدث؟
اعتُبرت تصريحات المكتبة تنفيذًا للواجهة.
كيف تصلحه؟
استخدم مكونًا مدعومًا أو وفر التنفيذ الموثق.
كيف تتجنب تكراره؟
افحص target وlib وبيئة النشر منفصلة.

تشغيل ملف قديم بعد فشل الفحص.

لماذا يحدث؟
لم تحمِ الأوامر حداثة الناتج.
كيف تصلحه؟
اشترط نجاح الفحص وحدّد ملف الناتج.
كيف تتجنب تكراره؟
استخدم مجلدات ناتج معزولة وأوامر قابلة للتكرار.

توقع فحص JSON من واجهة.

لماذا يحدث؟
عوملت الأنواع الممحوة كحراس تنفيذ.
كيف تصلحه؟
افحص unknown قبل استخدام المجال.
كيف تتجنب تكراره؟
وثّق كل حد إدخال غير موثوق.

اختبر فهمك

1. غيّر الاستدعاء إلى double(9)، وحدد النتيجة والمعلومات الممحوة.

اعرض الحل المشروح

النتيجة ثمانية عشر ثم سطر جديد. تختفي معلمتا الإدخال والإرجاع وتبقى الدالة والضرب JavaScript. يفحص المترجم نوع الوسيط ويحسِب التنفيذ قيمته. أعد البناء قبل المقارنة كي لا يخفي الملف القديم التغيير.

2. يضم مشروع تصريحات DOM ويستدعي document.querySelector في Node. فسّر نجاح الفحص واقترح التحقيق.

اعرض الحل المشروح

تصف التصريحات كائن المتصفح ولا تنشئ document في Node. حدّد البيئة المقصودة وهل تنتمي الشيفرة لمدخل المتصفح. أزل الافتراض أو وفر بيئة مدعومة مقصودة؛ فلا تنشئ المعلمة أو التأكيد الكائن المفقود. اختبر المدخل المولد الفعلي.

أهم ما تعلمته

  • افصل الفحص والتوليد والتنفيذ.
  • ثبّت الإعداد وافحص بيئة التنفيذ مستقلًا.
  • تصف الأنواع البيانات ويفحص التحقق القيم الفعلية.

المراجع الرسمية