البرمجة

الوصول لخصائص setter-only في TypeScript

عندما يتعلق الأمر بلغة TypeScript، تتوفر الكثير من المفاجآت والتحسينات المذهلة التي قد لا تتوافر في لغات برمجة أخرى، ومن بين هذه المفاجآت هو ما يتعلق بالوصول إلى الخصائص التي تحتوي فقط على متحكمات set دون وجود متحكمات get.

عندما تنظر إلى الكود الذي قدمته، يمكنك أن تتوقع أن تحدث خطأ في وقت الترجمة، لأنه يبدو أنه يحاول الوصول إلى الخاصية prop التي تحتوي فقط على متحكم set دون متحكم get. ومع ذلك، في TypeScript، هذا لا يُعتبر خطأ، بل يتم التعامل معه بشكل طبيعي.

السبب في عدم حدوث خطأ هو أن TypeScript يعتمد على مفهوم التفاعلية بين الخصائص، حيث يُمكن للخصائص أن تكون لها متحكمات get فقط، متحكمات set فقط، أو كلاهما معًا. وعند الوصول إلى الخصائص، يتم فحص إذا ما كان هناك متحكم get متوفر للخصائص، وإذا لم يكن هناك، فإن TypeScript يعتبر الوصول إلى الخصائص كتعيين قيمة جديدة لها.

في الحالة التي قدمتها، this.prop في الداخل يُعتبر استدعاءً للمتحكم get للخاصية prop، وعندما لا يكون متحكم get متوفرًا، يتم اعتباره كتعيين قيمة جديدة للخاصية، وهذا يعتبر مقبولًا من قبل TypeScript دون وجود خطأ في وقت الترجمة.

يمكن اعتبار هذا التصرف سلوكاً مفيداً في بعض الحالات، حيث يُمكن استخدامه لتنفيذ بعض العمليات داخل المتحكم set دون الحاجة إلى متحكم get مقابلها، مما يسهل على المطورين إنشاء مخططات برمجية مرنة وسهلة الصيانة.

باختصار، عندما ترى تصرفًا غير متوقع مثل هذا في TypeScript، فلا تندهش كثيرًا، بل اعلم أن هناك مفهومًا أعمق يدعمه ويبرره، ويسهل عملك كمطور.

المزيد من المعلومات

المفهوم الذي يتبعه TypeScript في هذا الصدد يأتي كجزء من مجموعة القواعد التي تجعل اللغة أكثر مرونة وقوة في الاستخدام اليومي. وهو يسمح للمطورين بتنفيذ تصاميم برمجية مختلفة ومتنوعة دون الحاجة إلى تكرار الكثير من الكود أو إلى تغيير الهيكل الأساسي للبرنامج.

لفهم هذا السلوك بشكل أفضل، يمكن النظر إلى فلسفة TypeScript في التعامل مع الأنواع. فاللغة تسعى جاهدة لتوفير نوعية مشتقة من الأنواع، مما يسمح للمطورين بتعريف أنواع مركبة ومرنة بطريقة سهلة وواضحة. واحدة من هذه الأنواع المشتقة هي الخصائص.

عندما تعرِّف خصائص في TypeScript، يمكن أن تكون لها متحكمات set فقط، متحكمات get فقط، أو كلاهما معًا. وهذا يعني أنه حتى إذا كان لا يوجد متحكم get لخاصية ما، فإن الوصول إليها ما زال مقبولاً ولا يُعتبر خطأ.

السبب وراء هذا التصميم هو تعزيز مفهوم السهولة والمرونة في كتابة الكود. فعندما يريد المطور تحديد خاصية تتمتع بمتحكم set فقط، فإنه لا يحتاج إلى تعريف متحكم get فارغ ببساطة لأن ذلك لا يضيف قيمة إضافية. بدلاً من ذلك، يمكنه الوصول إلى الخاصية بدون قلق من وجود متحكم get.

من الجدير بالذكر أن هذا السلوك ليس فقط محصوراً في TypeScript، بل يوجد في العديد من لغات البرمجة الأخرى أيضاً، مثل Java وC#. ويعكس هذا السلوك تصميماً عاماً للغة برمجة يهدف إلى تسهيل عمل المطورين وتقليل الحواجز التي قد تواجههم أثناء كتابة الكود.

باختصار، يُعد السلوك الذي تلاحظه في TypeScript عند الوصول إلى الخصائص التي تحتوي فقط على متحكم set دون وجود متحكم get خطأً مفهوماً، وهو جزء من الفلسفة العامة للغة التي تهدف إلى تعزيز المرونة والسهولة في كتابة الكود.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر