infer تُستخدم داخل conditional type لـ التقاط (استخراج) نوع من داخل نوع آخر إلى متغير نوع جديد يمكنك استخدامه بعد ذلك. إنها pattern-matching للأنواع.
ts
// Extract the element type of an array
type ElementOf<T> = T (infer U)[] ? U : ;
A = <[]>;
B = <[]>;
