ترحيل مشروع JavaScript تدريجيًّا
لا حاجة لتحويل كل شيء دفعة واحدة. TypeScript يدعم الخلط:
- أضف
tsconfig.jsonبخيارallowJs: true. - حوّل ملفًّا واحدًا من
.jsإلى.ts. - أصلح الأخطاء التي يكشفها.
- كرّر تدريجيًّا.
{
"compilerOptions": {
"allowJs": true,
"checkJs": false,
"strict": true
}
}
أنواع المكتبات (DefinitelyTyped)
كثير من مكتبات JavaScript تأتي بأنواعها، وبعضها يحتاج حزمة @types
منفصلة من مستودع DefinitelyTyped:
npm install lodash
npm install -D @types/lodash # الأنواع منفصلة
ثم تستخدمها بأنواع كاملة:
import _ from "lodash";
const result = _.chunk([1, 2, 3, 4], 2); // منمَّط
💡 لو لم تجد أنواعًا لمكتبة، يمكنك تعريف
declare module "name"مؤقتًا.
أفضل الممارسات
- فعّل
strictدائمًا — هو جوهر TypeScript. - تجنّب
any— استخدمunknownثم تحقّق. - اترك الاستنتاج يعمل ولا تكتب الأنواع الواضحة.
- استخدم
interfaceلشكل الكائنات وtypeللاتحادات. - نمّط حدود نظامك (مدخلات API، ردود fetch) بدقّة — هنا تتسرّب أخطاء الأنواع.
- استخدم الأنواع الحرفية والاتحادات بدل النصوص الحرّة.
- لا تبالغ في الأنواع المتقدّمة — البساطة أولًا.
مثال: قبل وبعد
// ❌ ضعيف
function save(data: any) {}
// ✅ آمن
interface Post { title: string; body: string }
function save(data: Post) {}
أخطاء شائعة
- ترحيل ضخم دفعة واحدة فتغرق في مئات الأخطاء — تدرّج.
- نشر
anyلتسريع الترحيل ثم نسيان إصلاحه.
🎯 التالي: الخلاصة وخطواتك بعد TypeScript.