أصبح TypeScript أداة أساسية لتطوير الويب الحديث. هذا الدليل سيساعد مطوري JavaScript على الانتقال إلى TypeScript والاستفادة من نظام الأنواع القوي الخاص به.
لماذا TypeScript؟
يمكن أن تؤدي الكتابة الديناميكية لـ JavaScript إلى أخطاء وقت التشغيل كان يمكن اكتشافها أثناء التطوير. يضيف TypeScript الكتابة الثابتة، مما يوفر:
- كشف مبكر للأخطاء
- دعم أفضل لبيئة التطوير والإكمال التلقائي
- تحسين قابلية صيانة الكود
- كود موثق ذاتياً
- قدرات أفضل لإعادة الهيكلة
الأنواع الأساسية
// الأنواع الأساسية
let name: string = "محمد";
let age: number = 28;
let isDeveloper: boolean = true;
let skills: string[] = ["React", "Node.js", "TypeScript"];
let nullable: null = null;
let unknownType: unknown = "قد يكون أي شيء";
// Any (استخدم باعتدال)
let flexible: any = 42;
flexible = "الآن نص";
// Void (للوظائف التي لا تعيد قيمة)
function logMessage(message: string): void {
console.log(message);
}
الواجهات والأنواع المخصصة
// واجهة للكائنات
interface User {
id: number;
name: string;
email: string;
age?: number; // خاصية اختيارية
readonly createdAt: Date; // للقراءة فقط
}
// اسم مستعار للنوع
type UserRole = 'admin' | 'user' | 'guest';
// توسيع الواجهات
interface Admin extends User {
permissions: string[];
role: 'admin';
}
// استخدام الواجهات
const user: User = {
id: 1,
name: "محمد صابر",
email: "mohamed@example.com",
createdAt: new Date()
};
الأنواع العامة (Generics)
تسمح الأنواع العامة بإنشاء مكونات قابلة لإعادة الاستخدام تعمل مع أنواع متعددة:
// دالة عامة
function identity<T>(value: T): T {
return value;
}
let result1 = identity<string>("مرحباً");
let result2 = identity<number>(42);
// واجهة عامة
interface ApiResponse<T> {
data: T;
status: number;
message: string;
}
type UserResponse = ApiResponse<User>;
الخلاصة
يحسن TypeScript تطوير JavaScript بشكل كبير عن طريق إضافة سلامة النوع. على الرغم من وجود منحنى تعلم، فإن فوائد اكتشاف الأخطاء مبكراً، والأدوات الأفضل، وتحسين قابلية صيانة الكود تجعل الاستثمار فيه يستحق العناء. ابدأ بمشاريع صغيرة واعتمد TypeScript تدريجياً في سير عملك.

