TypeScript
TypeScript لغة مبنية فوق JavaScript تضيف الأنواع الساكنة. يُحوَّل الكود إلى JavaScript عادية، والأنواع تُفحص وقت البناء فقط ولا وجود لها وقت التشغيل.
أنواع أساسية
type User = { id: string; name: string; email?: string }; // email اختياري
function initials(u: User): string {
return u.name.split(' ').map((w) => w[0]).join('');
}
الاتحادات وتضييق الأنواع
type Result = { ok: true; data: User } | { ok: false; error: string };
function show(r: Result) {
if (r.ok) console.log(r.data.name); // هنا r.data معروفة
else console.error(r.error);
}
الأنواع العامة (Generics)
function first<T>(items: T[]): T | undefined {
return items[0];
}
const n = first([1, 2, 3]); // number | undefined
إعدادات مهمة
فعّل "strict": true في tsconfig.json؛ يتضمن strictNullChecks الذي يمنع أشهر الأخطاء: استخدام قيمة قد تكون undefined.
أخطاء شائعة
- الإكثار من
anyيلغي فائدة اللغة؛ استخدمunknownثم ضيّق النوع. - الاعتماد على الأنواع للتحقق من بيانات خارجية: الأنواع لا تعمل وقت التشغيل، فتحقق من مدخلات المستخدم والـ API بمكتبة مثل Zod.