TypeScript Academy · درس

‏skipLibCheck والتصريحات المعزولة

استخدموا علامات المترجم لتسريع المشاريع الكبيرة

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

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

ما هو skipLibCheck؟

يخبر skipLibCheck: true TypeScript بتجاوز فحص الأنواع في جميع ملفات التصريح .d.ts. وهو يستبدل جزءًا من الأمان بالسرعة.

// tsconfig.json
{
  "compilerOptions": {
    "skipLibCheck": true
  }
}

متى تستخدمون skipLibCheck؟

استخدموه عندما تحتوي ملفات التصريح .d.ts التابعة لجهات خارجية على أخطاء لا يمكنكم إصلاحها، أو في المشاريع الكبيرة التي يستحوذ فيها فحص أنواع المكتبات على معظم وقت الترجمة.

// Common scenario: two libraries ship conflicting .d.ts
// skipLibCheck: true silences those errors so you can focus on your code

مخاطر skipLibCheck

قد تفوتكم أخطاء حقيقية في الأنواع داخل ملفات التصريح، وهي أخطاء كان من شأنها اكتشاف العيوب عند الحدود. استخدموه بوعي، وأعيدوا تفعيله دوريًا للتحقق من عدم حدوث تراجعات.

// Risk: incorrect .d.ts in a library goes undetected
// Mitigation: enable skipLibCheck only for known-safe packages

skipDefaultLibCheck

يُعد skipDefaultLibCheck: true خيارًا أكثر تحديدًا، إذ يتجاوز تصريحات مكتبات TypeScript المضمّنة فقط، مثل lib.d.ts، ولا يتجاوز التصريحات التابعة لجهات خارجية.

{
  "compilerOptions": {
    "skipDefaultLibCheck": true
    // Third-party .d.ts files still checked
  }
}

ما هي التصريحات المعزولة؟

يتطلب isolatedDeclarations: true (في TS 5.5+) أن يمتلك كل رمز مُصدَّر تعليقًا صريحًا على نوعه، مما يتيح لـ TypeScript إنشاء التصريحات دون استنتاج كامل للأنواع.

// tsconfig.json
{
  "compilerOptions": {
    "isolatedDeclarations": true
  }
}

لماذا يسرّع isolatedDeclarations العمل؟

باستخدام isolatedDeclarations، يمكن إنشاء تصريحات كل ملف بشكل مستقل، دون تحليل بقية البرنامج. ويمكن لأدوات البناء تنفيذ هذا العمل بالتوازي لكل ملف.

// Without isolatedDeclarations:
// File A's .d.ts requires type-checking File B's return type first.
// With isolatedDeclarations:
// Each file's .d.ts generated from its explicit annotations alone.

خطأ: تعليق نوع الإرجاع مفقود

عند تفعيل isolatedDeclarations، تتسبب الدوال المُصدَّرة التي لا تحتوي على تعليقات لأنواع الإرجاع في حدوث خطأ أثناء الترجمة.

// Error with isolatedDeclarations: true
export function getUser(id: string) { return fetchUser(id); }

// Fix: add explicit return type
export function getUser(id: string): Promise<User> { return fetchUser(id); }

isolatedDeclarations وحِزَم DTS

تستفيد أدوات مثل dts-buddy وoxc من isolatedDeclarations لإنشاء حِزَم التصريحات بسرعة أكبر بكثير من tsc.

# oxc with isolatedDeclarations for fast .d.ts generation
npx oxc-transform ./src --declarations

دمج الخيارين

لتحقيق أقصى أداء في مستودعات monorepo الكبيرة: استخدموا skipLibCheck: true لتجاهل أخطاء تصريحات الجهات الخارجية، وisolatedDeclarations: true لإنشاء التصريحات بالتوازي.

{
  "compilerOptions": {
    "skipLibCheck": true,
    "isolatedDeclarations": true
  }
}

مسار الترحيل

يتطلب تفعيل isolatedDeclarations في قاعدة رموز موجودة إضافة تعليقات لأنواع الإرجاع إلى كل دالة مُصدَّرة. استخدموا ts-migrate أو الإصلاح التلقائي في ESLint لتنفيذ ذلك على نطاق واسع.

# ESLint rule to auto-add return types:
# @typescript-eslint/explicit-function-return-type

مراجعة: skipLibCheck والتصريحات المعزولة

يتجاوز skipLibCheck فحص أنواع .d.ts لتحسين السرعة. ويتطلب isolatedDeclarations تعليقات صريحة لتمكين إنشاء التصريحات بالتوازي ولكل ملف، وهو عامل أساسي لتسريع الأدوات.

تحقّق سريع

ماذا يتطلب isolatedDeclarations: true؟

ما تعلّمتموه

يحسّن skipLibCheck السرعة من خلال تجاهل أخطاء تصريحات الجهات الخارجية. ويتطلب isolatedDeclarations أنواع إرجاع صريحة للصادرات، مما يتيح إنشاء التصريحات بالتوازي لكل ملف وتسريع مسارات الأدوات.

البدء مجانًا

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

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

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

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

هل درس «‏skipLibCheck والتصريحات المعزولة» مجاني؟

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

ماذا ستتعلم في «‏skipLibCheck والتصريحات المعزولة»؟

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

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

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

كم من الوقت يستغرق درس «‏skipLibCheck والتصريحات المعزولة»؟

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

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

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

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

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