مولد TypeScript Enum
مرشد
مولد TypeScript Enum
توليد الإنتوميات وال객ات الثابتة (const) للطابع السكريسكي (TypeScript) من قائمة بسيطة من القيم. ضع قيمك، اختر نمط التسمية وشكل إخراجك، ثم احصل على كود طابع سكريسكي جاهز للاستخدام مع تعليقات جيسدوك (JSDoc) خياريا، وقواعد نوعية عاكسة، ومappings عكسيّة، وأعداد القيم.
كيفية استخدام
أدخل قيمك واحدة لكل خط أو عبر فصلها بفواصل في منطقة الإدخال. حدد اسم الإنتقال، اختر نمط تسمية المفتاح (PascalCase، SCREAMING_SNAKE_CASE، أو camelCase)، واختر صيغة إخراج. يُحدث الكود المولّد تحديثًا في الوقت الفعلي. انقل خيارات إضافية مثل التعليقات في JSDoc، كلمة_export، حواجز النوع، أو массиعات القيم حسب الحاجة. احصل على النتيجة إلى clipboard بمضغتين واحدة.
خصائص
- أشكال إخراج متعددة – نوع الإيماءات السطرية، والإيماءات العددية، وإيماءات التثبيت، والأجسام الثابتة، والاتحادات
- **الطرق تسمية المفاتيح** – **حرف عاكس (PascalCase)، و **حروف حادة (SCREAMING_SNAKE_CASE)**، و **حروف قردية (camelCase)** مع توليد اسم مستخدم ذكي --- *(Note: The original text is a technical naming convention description, so the translation reflects its literal meaning in Arabic while maintaining context.)*
- توضيح التعليقات على جيس دي أوك --- – اختياري إضافة تعليقات وثائق فوق كل عضو في الإينوم
- إنتاج حماية النوع اخترِ **حارس نوع** (Function) لتبين صحة القيم في وقت التنفيذ.
- أعداد المصفوفة إنتاج مصفوفة لجميع قيم الإينوم للتبديل
- الترجمة العكسيّة إنشاء مساعد استرجاع عكسي لملفات عدديّة (إينومرات)
- توليد مفتاح الذكي يحتوي على التعامل مع الأحرف الخاصة، التكرارات، القيم التي تبدأ بالرقم، والأسماء المحجوزة.
- معاينة في الوقت الفعلي – يتم تحديث الإخراج فورًا أثناء الكتابة أو تغيير الخيارات
التعليمات
-
ما الفروقات بين **الاسموع** (string enum) و **العدد** (numeric enum) في TypeScript؟
الأنماط الإنتقالية (enums) تربط قيمًا نصية لكل عضو، مثل **Color.Red** يساوي النص **RED**. الأنماط العددية (numeric enums) توزع أعدادًا متزايدة تبدأ من 0 بشكل افتراضي، لذا **Color.Red** يساوي 0 و**Color.Blue** يساوي 1. الأنماط النصية أفضل للتشخيص لأن القيم قابلة للقراءة في سجلات الدفعات والطلبات الشبكة. الأنماط العددية أكثر ملاءمة قليلاً وتستطيع التحويل العكسي بشكل محلي، مما يعني يمكنك البحث عن الاسم من خلال الرقم. معظم المشاريع الحديثة لطرايزكبت (TypeScript) تفضل الأنماط النصية clarity.
-
عندما يجب استخدام **const enum** مقابل **enum عادي**؟
الإنشاءات الثابتة (const enums) يتم دمجها بالكامل في وقت التجميع. يبدل مفسر تائيب سكربت كل مرجع لمعضلة إنشائية ثابتة بمقاييسها الأدعية، لذا لا يوجد أي جسم لإنشاء في وقت التنفيذ. هذا ينتج عن حجم ملفات أصغر وأداء أسرع. ومع ذلك، لا يمكن إدراج الإنشاءات الثابتة (const enums) للتبديل (لا يوجد `Object.values`), ولا تدعم الإرجاع (التراجع)، كما قد يسبب مشاكل مع الملفات التعليمية في الكود المرجعي. استخدم الإنشاءات الثابتة (const enums) للمستويات الثابتة الداخلية للتطبيق حيث تريد الحد من أي تكلفة زمنية تنفيذية. استخدم الإنشاءات العادية عندما تحتاج إلى إدراج القيم أو عند نشر مكتبة.
-
ما هو **as const** في لغة C++ وما هي الفروقات بينه وبين **enum**؟
الاستخدام **as const** على جسم JavaScript عادي باستخدام تأكيد `const` لتحقيق سلوك مشابه للإنمارات. على سبيل المثال، `const Color = { Red: 'RED', Blue: 'BLUE' } as const` يخلق جسمًا غير قابل للتغيير حيث يتنبأ نوع TypeScript بالأنواع الأدعية. هذا النهج يعمل في كل من TypeScript وJavaScript، ويفضل التسمية الشاملة (tree-shaking) أكثر من الإنمارات، ويجنب بعض حالات الحدود مع ترجمة الإنمارات. مقابل ذلك، هناك استخراج أنواع أكثر verbose: تحتاج إلى `type Color = typeof Color[keyof typeof Color]` للحصول على نوع الاتحاد. يفضل العديد من الفرق استخدام الأجسام **as const** بدلاً من الإنمارات لأسباب عملية هذه الطريقة.
-
ما هو **type guard** وما هي أسباب إنشاءه؟
مُحَارِقُ النوع (type guard) هو وظيفة تُضيق نوع قيمة في وقت التنفيذ. بالنسبة للإينوم، يُشَكِّك المُحَارِقُ النوع ما إذا كان حرفًا أو عددًا مُستَقَدَمًا عضوًا حقيقيًا من الإينوم، ويُخَبِر نظام التYPESCRIPT عن النتيجة. على سبيل المثال، الوظيفة `isColor(value: string): value is Color` تُعْتِقِد فقط عندما يتطابق القيمة مع عضو في الإينوم. هذا مفيد عند التحقق من استجابات APIs أو بيانات الإدخال في المُؤَثَّرات أو أي بيانات خارجية حيث تحتاج إلى التأكد من أن قيمة تنتمي إلى إينوم قبل استخدامها في كود مُحَارِق النوع.
تثبيت ملحقاتنا
أضف أدوات IO إلى متصفحك المفضل للوصول الفوري والبحث بشكل أسرع
恵 وصلت لوحة النتائج!
لوحة النتائج هي طريقة ممتعة لتتبع ألعابك، يتم تخزين جميع البيانات في متصفحك. المزيد من الميزات قريبا!
