Skip to content

الأنواع المساعدة في TypeScript مشروحة

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

الأنواع المساعدة هي دوال عامة للأنواع: تأخذ نوعًا واحدًا أو اثنين وتعيد نوعًا جديدًا، فلا تحتاج إلى كتابة كل شكل يدويًا. تتألق في الأنواع المشتقة، حيث يكون مصدر الحقيقة نوعًا آخر أو قيمة وتريد أن تتعقب أنواعك ذلك تلقائيًا. القاعدة العملية: اشتق بدلًا من أن تكرّر؛ إذا غيّرت المصدر، يتبعه النوع المشتق.

جدول مرجعي · 22 إدخالات
22 of 22 rows
شكل الكائن
T مع كل خاصية تصبح اختيارية.type Update = Partial<User>
T مع كل خاصية تصبح إلزامية.type Strict = Required<Opts>
T مع كل خاصية تصبح للقراءة فقط.type Frozen = Readonly<User>
T مع الاحتفاظ بالمفاتيح الموجودة في K فقط.type Preview = Pick<User, "id" | "name">
T مع إزالة المفاتيح الموجودة في K.type SafeUser = Omit<User, "password">
كائن مفاتيحه من النوع K وقيمه من النوع V.type Scores = Record<string, number>
تصفية الاتحاد
الاتحاد U بعد إزالة الأعضاء القابلة للإسناد إلى X.type NoNull = Exclude<T, null>
أعضاء U القابلة للإسناد إلى X.type OnlyStr = Extract<T, string>
T بعد إزالة null و undefined.type Def = NonNullable<T>
أنواع الدوال
صفوف من أنواع معاملات الدالة F.type P = Parameters<typeof fn>
النوع الذي تعيده الدالة F.type R = ReturnType<typeof fn>
صفوف من أنواع معاملات المنشئ F.type C = ConstructorParameters<typeof Date>
نوع الكائن الذي ينتجه المنشئ F.type D = InstanceType<typeof Date>
النوع الذي تُحلّ إليه Promise، بشكل تكراري.type Data = Awaited<Promise<User>>
تحويلات السلاسل النصية الحرفية
السلسلة النصية الحرفية S بأحرف كبيرة.type A = Uppercase<"abc"> // "ABC"
السلسلة النصية الحرفية S بأحرف صغيرة.type B = Lowercase<"ABC"> // "abc"
S مع الحرف الأول بأحرف كبيرة.type C = Capitalize<"abc"> // "Abc"
S مع الحرف الأول بأحرف صغيرة.type D = Uncapitalize<"Abc"> // "aBc"
كلمات مفتاحية ذات صلة
اتحاد لمفاتيح خصائص النوع الكائني T.type K = keyof User
نوع القيمة دون الحاجة إلى كتابته من جديد.type Config = typeof defaults
التقاط نوع داخل نوع شرطي لإعادة استخدامه.type El<T> = T extends Array<infer I> ? I : never
اختيار النوع X أو Y حسب ما إذا كان T قابلًا للإسناد إلى U.type IsStr<T> = T extends string ? true : false