Readonly<Type>
منع تعديل خصائص كائن Readonly<Type>
Readonly<Type> تبني نوعًا جديدًا بنفس خصائص Type لكن كلها للقراءة فقط، فيمنع المترجم أي إعادة تعيين لها بعد الإنشاء.
Readonly تضيف مُعدِّل `readonly` لكل خاصية في Type. أي محاولة لتعديل قيمة خاصية بعد إنشاء الكائن تصبح خطأ ترجمة، لا خطأ وقت التشغيل.
هذا فحص وقت الترجمة فقط — لا يجمّد الكائن فعليًّا في JavaScript الناتج (استخدم Object.freeze لذلك إن أردت حماية وقت التشغيل أيضًا).
الصياغة
Readonly<Type>
📄 مثال
interface Point {
x: number;
y: number;
}
const origin: Readonly<Point> = { x: 0, y: 0 };
origin.x = 10; // ❌ خطأ: x للقراءة فقطأهم النقاط
| العنصر | الوظيفة |
|---|---|
| Type | نوع الكائن المراد حماية كل خصائصه من التعديل |
💡 نصائح عملية
- استخدمها لتوثيق قيم ثابتة أو إعدادات لا يجب أن تتغيّر بعد التهيئة
- لحماية وقت التشغيل الفعلية، اجمعها مع Object.freeze
⚠️ أخطاء شائعة
- الظن أن Readonly تمنع التعديل وقت التشغيل تلقائيًّا — هي فحص TypeScript فقط، ويمكن تجاوزها بـ as أو في JavaScript خام
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار TYPESCRIPT الكامل بالعربي.