يمكن استخدام العمليات الجينيريكية في Typescript للعمل مع أنواع مخصصة عن طريق تعريف النوع المخصص كواحدة من المعاملات الجينيريكية للعملية.
على سبيل المثال ، إذا كان لدينا نوعًا مخصصًا يتمثل في “نقطة” (Point) ونود إنشاء دالة لحساب مسافة بين نقطتين ، فيمكننا استخدام العمليات الجينيريكية على النحو التالي:
“`typescript
class Point {
constructor(public x: number, public y: number) {}
}
function distance
const dx = point2.x – point1.x;
const dy = point2.y – point1.y;
return Math.sqrt(dx * dx + dy * dy);
}
const p1 = new Point(0, 0);
const p2 = new Point(3, 4);
const dist = distance(p1, p2);
console.log(dist); // Output: 5
“`
في هذا المثال ، تم تعريف الدالة `distance` باستخدام عملية جينيريكية `T extends Point` حيث `T` هو النوع المخصص. يتم تطبيق شرط القيود `T extends Point` للتأكد من أن النوع `T` يمكن أن يكون أي نوع مشتق من `Point`.
ثم يتم استخدام هذا النوع المخصص `T` كمعامل للاستدعاء العادي للدالة. في هذه الحالة ، يتم تمرير كائني النقطة `p1` و `p2` كمعاملات للدالة `distance` ويتم اعتبارهما كنقطتين لحساب المسافة بينهما.
يتم استخدام العمليات الجينيريكية في هذا المثال لإنشاء دالة `distance` التي يمكن استخدامها مع أي نوع يتم تعريفه كمشتق من `Point` دون الحاجة إلى إعادة كتابة الدالة لكل نوع جديد.