التحديد الصريح (Explicit)
تكتب النوع بنفسك بعد اسم المتغيّر بنقطتين ::
let username: string = "سارة";
let age: number = 25;
let isActive: boolean = true;
الاستنتاج التلقائي (Inference)
TypeScript ذكي — يستنتج النوع من القيمة الأوّلية دون أن تكتبه:
let username = "سارة"; // TypeScript يعرف أنه string
let age = 25; // number
الآن محاولة age = "نص" ستسبب خطأً فوريًّا، رغم أنك لم تحدّد النوع.
متى تستخدم كلًّا منهما؟
| الحالة | الأفضل |
|---|---|
| متغيّر بقيمة أوّلية واضحة | اترك الاستنتاج |
| متغيّر بلا قيمة أوّلية | حدّد صراحةً |
| معاملات الدوال | حدّد صراحةً دائمًا |
| القيمة المُرجعة من دالة | غالبًا اتركه يستنتج |
// استنتاج كافٍ
let total = 100;
// تحديد ضروري (لا قيمة أوّلية)
let result: number;
result = 50;
// معاملات الدوال تحتاج تحديدًا دائمًا
function greet(name: string) {
return `أهلًا ${name}`;
}
القاعدة الذهبية
اترك TypeScript يستنتج ما يستطيع استنتاجه (أوضح وأقصر)، وحدّد صراحةً عند معاملات الدوال والمتغيّرات بلا قيمة أوّلية.
أخطاء شائعة
- الإفراط في كتابة الأنواع الواضحة (
let x: number = 5) — ضوضاء بلا فائدة. - ترك معاملات الدوال بلا نوع فتصبح
anyضمنيًّا (يمنعهstrict).
🎯 التالي: الأنواع الخاصّة — any وunknown وnever وvoid.