تخطَّ إلى المحتوى

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 الكامل بالعربي.