عن المشروع
TypeFest هي مجموعة من أنواع TypeScript القابلة لإعادة الاستخدام والهادفة إلى سد الثغرات في نظام الأنواع المدمج. يمكن تثبيتها من npm باسم type-fest، وتُستورد الأنواع الفردية باستخدام صيغة استيراد الأنواع فقط في TypeScript. تتطلب نسخة التطوير الموثقة TypeScript 5.9 أو أحدث، ومشروعًا يعتمد على ESM، وتمكين الوضع الصارم في tsconfig. ويشير المشرف أيضًا إلى أنه يمكن نسخ ولصق الأنواع المطلوبة دون ذكر المصدر.
تغطي المكتبة مجموعة واسعة من حالات الاستخدام على مستوى النوع. تتضمن الأنواع الأساسية Primitive وClass وConstructor وAbstractClass وTypedArray وObservableLike، ومجموعات أحرف مثل LowercaseLetter وUppercaseLetter وDigitCharacter وAlphanumeric.
تشكّل أنواع الكائنات والأنواع المساعدة القسم الأكبر. تشمل أمثلتها Except لحذف المفاتيح، وWritable وWritableDeep لإزالة معدِّلات القراءة فقط، وMerge وMergeDeep لدمج الأنواع، وPartialDeep وRequiredDeep لجعل الخصائص اختيارية أو مطلوبة بشكل متكرر، وReadonlyDeep لعدم القابلية للتعديل العميق، وSetOptional وSetRequired وSetReadonly وSetNonNullable لتعديل خصائص محددة. كما توفر أنواع اختيار شرطية مثل ConditionalKeys وConditionalPick وConditionalExcept، وأدوات مساعدة متداخلة مثل PickDeep وOmitDeep وGet وPaths، وأدوات مساعدة للاتحادات مثل LiteralUnion وTaggedUnion وUnionToIntersection وKeysOfUnion وDistributedOmit.
تشمل أنواع حراسة النوع والقيم المنطقية If وIsAny وIsNever وIsUnknown وIsNull وIsUndefined وIsTuple وIsUnion وIsLiteral وIsStringLiteral وIsNullable، وفحوصات التساوي مثل IsEqual. ويتضمن دعم JSON أنواع JsonValue وJsonPrimitive وJsonObject وJsonArray وJsonifiable وJsonify. تغطي مجموعات أخرى الاستنساخ المنظم، والأنواع غير المتزامنة مثل Promisable وAsyncReturnType وAsyncify، وأنواع معالجة السلاسل النصية مثل Split وReplace وTrim وRemovePrefix وRemoveSuffix، وأنواع المصفوفات أو الصفوف مثل ArrayElement وLastArrayElement وIncludes وJoin وArraySlice وFixedLengthArray وNonEmptyTuple.
يربط ملف README كل اسم نوع بتعريفه المصدر للحصول على توثيق تفصيلي. وتوفر الحزمة ذات الصلة ts-extras دوال وقت التشغيل لبعض المفاهيم نفسها. يقبل المشروع المقترحات وطلبات السحب لإضافة أنواع شائعة الاستخدام إضافية، وفقًا لإرشادات المساهمة الخاصة به.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.