TypeScript Academy · درس

التحقق من الأنواع في CI: الاستراتيجيات والأدوات

شغّلوا عمليات التحقق من الأنواع بكفاءة في مسارات التكامل المستمر

الدرس 4 من 413 خطوة

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

لماذا تفحصون الأنواع في CI؟

يكشف تشغيل فحوصات أنواع TypeScript في CI أخطاء الأنواع التي قد يفوتها المطورون محليًا، لا سيما في الفرق الكبيرة حيث قد تؤدي التغييرات في إحدى الحزم إلى إفساد حزمة أخرى.

# Simple CI type check step
npx tsc --noEmit

خيار --noEmit

يشغّل tsc --noEmit فاحص الأنواع الكامل، لكنه يتجاوز إخراج JavaScript، مما يجعله مثاليًا لفحص الأنواع في CI دون إنشاء ملفات.

# GitHub Actions step
- name: Type Check
  run: npx tsc --noEmit

فحص الأنواع التزايدي في CI

استخدموا --incremental مع التخزين المؤقت في CI لاستعادة ملف .tsbuildinfo، بحيث يُعاد فحص الملفات التي تغيرت فقط.

# Cache .tsbuildinfo in CI (GitHub Actions)
- uses: actions/cache@v3
  with:
    path: .tsbuildinfo
    key: tsc-${{ hashFiles('src/**/*.ts') }}

مراجع المشاريع في CI

في مستودع monorepo، يفحص tsc --build --noEmit أنواع جميع الحزم مع مراعاة تبعيات مراجع المشاريع.

# Type-check all project references
npx tsc --build --noEmit

فحص الأنواع للحزم المتأثرة فقط باستخدام Nx

يمكن لـ Nx اكتشاف الحزم المتأثرة بطلب سحب وفحص أنواع تلك الحزم فقط، مع تجاوز الحزم التي لم تتغير.

# Only type-check affected projects
npx nx affected --target=typecheck --base=origin/main

فحص الأنواع باستخدام Turborepo

أضيفوا برنامجًا نصيًا باسم typecheck إلى كل حزمة وشغّلوه عبر Turborepo مع التخزين المؤقت والتنفيذ المتوازي.

// package.json
{ "scripts": { "typecheck": "tsc --noEmit" } }

// turbo.json pipeline
{ "typecheck": { "dependsOn": ["^typecheck"], "outputs": [] } }

// Run:
npx turbo typecheck

تنفيذ فحوصات الأنواع بالتوازي

بالنسبة إلى الحزم المستقلة، شغّلوا فحوصات الأنواع بالتوازي باستخدام أدوات مثل concurrently أو npm-run-all.

npx concurrently \
  "tsc -p packages/core/tsconfig.json --noEmit" \
  "tsc -p packages/ui/tsconfig.json --noEmit"

إفشال CI عند وجود أخطاء في الأنواع

تأكدوا من إفشال CI عند حدوث أي خطأ في TypeScript عبر التحقق من رمز الخروج. إذ يُنهي tsc --noEmit التنفيذ بالرمز 1 عند وجود أخطاء.

# CI step — fails if tsc exits 1
- name: Type Check
  run: npx tsc --noEmit
  # No continue-on-error: true here

فحص أنواع طلبات السحب فقط

استخدموا GitHub Actions لتشغيل فحوصات الأنواع على الملفات التي تغيرت في طلب السحب فقط، وذلك لتقليل وقت CI في المستودعات الكبيرة.

# Use ts-affected or custom script to detect changed TS files
# Then run tsc only for affected tsconfig projects

الإبلاغ عن أخطاء الأنواع في تعليقات طلبات السحب

يمكن لأدوات مثل danger-js تحليل مخرجات tsc ونشر أخطاء الأنواع كتعليقات مراجعة مضمنة في طلب السحب، مما يحسّن وضوحها.

// dangerfile.ts
import { danger, fail } from "danger";
// Parse tsc --noEmit output and report errors inline

مراجعة: فحص الأنواع في CI

شغّلوا tsc --noEmit في CI للتحقق من الصحة. استخدموا --incremental مع التخزين المؤقت لتحسين السرعة. وفي مستودعات monorepo، استخدموا tsc --build أو Turborepo أو تحليل Nx للحزم المتأثرة لتقليل العمل لكل طلب سحب.

تحقّق سريع

ما خيار tsc الذي يفحص الأنواع دون إنشاء أي ملفات إخراج؟

ما تعلّمتموه

يستخدم فحص الأنواع في CI الأمر tsc --noEmit للتحقق من الصحة دون إنشاء ملفات. ادمجوه مع --incremental ومراجع المشاريع وأدوات التخزين المؤقت مثل Turborepo وNx لإجراء فحص سريع وقابل للتوسع للأنواع في مستودعات monorepo الكبيرة.

البدء مجانًا

تعلم TypeScript مع معلم ذكاء اصطناعي — مجانًا

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

الدورات
101
الدروس
352

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

هل درس «التحقق من الأنواع في CI: الاستراتيجيات والأدوات» مجاني؟

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

ماذا ستتعلم في «التحقق من الأنواع في CI: الاستراتيجيات والأدوات»؟

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

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

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

كم من الوقت يستغرق درس «التحقق من الأنواع في CI: الاستراتيجيات والأدوات»؟

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

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

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

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

  1. تحليل أداء تجميع TypeScript البطيء
  2. تجنّب عمليات الأنواع المكلفة
  3. ‏skipLibCheck والتصريحات المعزولة
  4. التحقق من الأنواع في CI: الاستراتيجيات والأدوات
← العودة إلى TypeScript Academy