0Pricing
TypeScript Academy · درس

بدء الترحيل: ‏allowJs وcheckJs

فعّلوا التحقق من TypeScript في مشروع JavaScript

بدء الترحيل: ‏allowJs وcheckJs درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 4 دروس في المجموع.

تحدي الترحيل

يُعد ترحيل قاعدة شيفرة JavaScript كبيرة إلى TypeScript دفعة واحدة أمرًا محفوفًا بالمخاطر. والمسار التدريجي هو تفعيل TypeScript تدريجيًا، ملفًا تلو الآخر، مع الحفاظ على عمل المشروع.

# Key compiler flags for gradual migration:
# allowJs — allow .js files in the compilation
# checkJs — type-check .js files with JSDoc types

الخطوة 1: تثبيت TypeScript

أضف TypeScript إلى المشروع وأنشئ ملف tsconfig بسيطًا من دون تفعيل الوضع الصارم في البداية.

npm install --save-dev typescript
npx tsc --init
# Edit tsconfig.json to set allowJs: true

allowJs: true

عند استخدام allowJs: true، يضمّن TypeScript ملفات .js في عملية التجميع. ويكون فحص الأنواع متساهلًا، لذا ستُجمّع معظم شيفرات JavaScript من دون أخطاء.

{
  "compilerOptions": {
    "allowJs": true,
    "outDir": "./dist",
    "target": "ES2020"
  },
  "include": ["src"]
}

checkJs: true

يُفعّل checkJs: true فحص الأنواع في ملفات JavaScript باستخدام الأنواع المستنتجة وتعليقات JSDoc التوضيحية. ويكشف الأخطاء الواضحة من دون الحاجة إلى تحويل الملفات إلى .ts.

{
  "compilerOptions": {
    "allowJs": true,
    "checkJs": true
  }
}

تجاهل الأخطاء باستخدام @ts-nocheck

أضف // @ts-nocheck في أعلى ملفات JS التي تحتوي على مشكلات لتجاهل جميع أخطاء TypeScript أثناء العمل على الترحيل تدريجيًا.

// @ts-nocheck
// This file is not yet migrated — errors suppressed
function legacyUtil(x) { return x.foo.bar; }

تجاهل الأخطاء حسب السطر

استخدم // @ts-ignore لتجاهل خطأ في سطر واحد من دون تعطيل فحص الملف بالكامل.

const result = legacyFn(value); // @ts-ignore
// Only this line's error is suppressed

maxNodeModuleJsDepth

يفحص TypeScript افتراضيًا ملفات JS الموجودة في مشروعك فقط. اضبط maxNodeModuleJsDepth للتحكم في مدى عمق فحص ملفات JS داخل node_modules.

{
  "compilerOptions": {
    "maxNodeModuleJsDepth": 1 // Check 1 level deep in node_modules
  }
}

تجميع JS إلى Dist

باستخدام allowJs، يستطيع مُجمّع TypeScript أيضًا تحويل ملفات JS، وهو أمر مفيد لتطبيق polyfills واستهداف البيئات الأقدم بطريقة موحّدة.

tsc
# Compiles both .ts and .js files to dist/

قياس التقدم

تابع تقدم الترحيل من خلال حساب عدد ملفات .js مقارنةً بملفات .ts. وحدد هدفًا للنسبة المئوية التي ينبغي تحويلها في كل دورة عمل.

find src -name "*.ts" | wc -l   # TypeScript files
find src -name "*.js" | wc -l   # JavaScript files remaining

تجنب تراجع الأنواع

أبقِ noImplicitAny: false في البداية حتى لا تمتلئ ملفات JS الحالية بالأخطاء. فعّله بعد تحويل كل ملف إلى TypeScript.

{
  "compilerOptions": {
    "allowJs": true,
    "noImplicitAny": false // Relax for JS files; enable per .ts file
  }
}

مراجعة: بدء الترحيل

ابدأ الترحيل باستخدام allowJs: true وcheckJs: true، واستخدم @ts-nocheck للملفات غير الجاهزة، وتابع التقدم من خلال عدد الملفات. يحافظ هذا الأسلوب على قابلية تجميع المشروع أثناء تحويل الملفات تدريجيًا.

تحقق سريع

ماذا يفعل checkJs: true من دون الحاجة إلى تحويل .js إلى .ts؟

ما تعلمته

ابدأ ترحيل JS→TS باستخدام allowJs: true، واستخدم checkJs: true اختياريًا. استخدم @ts-nocheck لإسكات أخطاء الملفات غير الجاهزة، وحوّل الملفات تدريجيًا مع متابعة التقدم من خلال عدد الملفات.

الأسئلة الشائعة

هل درس «بدء الترحيل: ‏allowJs وcheckJs» مجاني؟

نعم — نص درس «بدء الترحيل: ‏allowJs وcheckJs» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 4 دروس في المجموع.

ماذا ستتعلم في «بدء الترحيل: ‏allowJs وcheckJs»؟

فعّلوا التحقق من TypeScript في مشروع JavaScript تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟

لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «بدء الترحيل: ‏allowJs وcheckJs»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟

نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. بدء الترحيل: ‏allowJs وcheckJs
  2. تعليقات أنواع JSDoc كجسر للترحيل
  3. استراتيجية التحويل ملفًا بعد ملف
  4. التعامل مع مكتبات الجهات الخارجية غير محددة الأنواع
← العودة إلى TypeScript Academy