التحقق من الأنواع في CI: الاستراتيجيات والأدوات
شغّلوا عمليات التحقق من الأنواع بكفاءة في مسارات التكامل المستمر
التحقق من الأنواع في 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تحليل أداء تجميع TypeScript البطيء
- تجنّب عمليات الأنواع المكلفة
- skipLibCheck والتصريحات المعزولة
- التحقق من الأنواع في CI: الاستراتيجيات والأدوات