استدلال النوع هو قيام TypeScript بتحديد الأنواع تلقائياً من السياق، بحيث لا تضطر إلى إضافة تعليقات توضيحية لكل شيء. يتم الاستدلال من القيم الأولية والعبارات المرجعية والاستخدام.
ts
x = ;
s = ;
arr = [, ];
obj = { : , : };
استدلال النوع هو قيام TypeScript بتحديد الأنواع تلقائياً من السياق، بحيث لا تضطر إلى إضافة تعليقات توضيحية لكل شيء. يتم الاستدلال من القيم الأولية والعبارات المرجعية والاستخدام.
x = ;
s = ;
arr = [, ];
obj = { : , : };
function double(n: number) { return n * 2; } // return inferred as number
[1, 2, 3].map(n => n * 2); // `n` inferred as number from the array — no annotation needed
هذا الاستدلال السياقي هو السبب في أن الـ callbacks نادراً ما تحتاج إلى تعليقات توضيحية للمعاملات — TypeScript يعرف أن map على number[] يمرر number.
let a = "hello"; // widened to string (let can be reassigned)
const b = "hello"; // narrowed to the literal type "hello"
const يستدل بـ النوع الحرفي لأنه لا يمكن أن يتغير أبداً؛ let يتوسع إلى النوع العام. هذا مهم للـ unions:
const dir = "up"; // type "up"
let dir2 = "up"; // type string
string وليس الحرفي).const xs = [] يستدل any[] — أضف تعليقاً توضيحياً كـ number[].الاستدلال يحافظ على كود TypeScript متطابقاً تقريباً مع JavaScript مع البقاء مكتوباً بالكامل.
فهم متى يبدأ (ومتى يتوسع) يسمح لك بإضافة تعليقات توضيحية فقط حيث يساعد بالفعل.