AzLearn

قيود Generics

Generic Constraints

مفهوم ~19 دقيقة

قيود Generics — Generic Constraints

أحياناً تريد generic، لكنك تحتاج ضمان وجود خاصية معينة. مثلاً دالة تطبع id لأي كائن يملك id. نكتب ذلك بـT extends { id: string }. هكذا تبقى الدالة مرنة، لكنها ليست مفتوحة لأي شيء.

بدون constraint، TypeScript لا يسمح بالوصول إلى value.id لأن T قد يكون رقماً أو نصاً. constraint يخبره أن كل نوع مقبول يجب أن يملك هذه الخاصية.

مثال عملي

index.ts

الدالة لا تهتم ببقية الخصائص، لكنها تضمن وجود id.

القيود لا تعني تعقيداً

استخدم constraint عندما تحتاج خاصية حقيقية. لا تضف قيوداً كثيرة تجعل الدالة أصعب من كتابة نوع مباشر.

تحدي — Challenge