Avatar ·

كيفية تعريف الثوابت بشكل صحيح في كلاس TypeScript؟

مرحباً بالجميع! لقد بدأت للتو في تعلم TypeScript وواجهت مشكلة. في JavaScript العادي كنت أستخدم `const` للثوابت، ولكن عندما أحاول فعل الشيء نفسه داخل كلاس، يشتكي TypeScript. أحتاج إلى أن يكون لكلاس `MathUtils` الخاص بي ثوابت، مثل عدد Pi، وتسارع الجاذبية الأرضية، وسرعة الضوء. أريد أن تكون هذه القيم مشتركة بين جميع instances من الكلاس ولا يمكن تغييرها. لقد جربت عدة خيارات، لكن لا أحد منها يعمل كما أتوقع: ```typescript class MathUtils { // الخيار 1: مجرد const const PI = 3.14159; // خطأ: 'const' declarations are not allowed in classes // الخيار 2: readonly readonly G = 9.81; // يعمل، لكن يجب إنشاء instance // الخيار 3: static readonly static readonly C = 299792458; // يبدو أنه يعمل، لكن كيف بشكل صحيح؟ } ``` المشكلة هي أنه مع `readonly` أحتاج إلى إنشاء instance من الكلاس للوصول إلى الثابت: `new MathUtils().G`. أما مع