مكتبة TypeScript القياسية: نظرة شاملة للمطورين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مكتبة TypeScript القياسية: نظرة شاملة



TypeScript هي مجموعة شاملة من JavaScript ذات كتابة صارمة، تضيف كتابة ثابتة وأدوات قوية لتطوير التطبيقات الكبيرة. على عكس العديد من اللغات، لا تحتوي TypeScript على مكتبة قياسية مدمجة واسعة بالمعنى التقليدي (مثل Java أو Python). بدلاً من ذلك، توفر مجموعة من الأنواع المدمجة، الأدوات المساعدة للتعامل مع الأنواع، المُزينات، و أدوات المترجم. في هذه المقالة، سنقوم بتحليل جميع المكونات الرئيسية لمكتبة TypeScript القياسية بالتفصيل.



1. أنواع البيانات المدمجة



تتضمن TypeScript جميع الأنواع البدائية في JavaScript وتضيف أنواعها الخاصة:



  • boolean — النوع المنطقي
  • number — الأرقام (صحيحة وعائمة)
  • string — السلاسل النصية
  • null و undefined — قيم خاصة
  • symbol — معرفات فريدة
  • bigint — أعداد صحيحة كبيرة
  • any — تعطيل التحقق من الأنواع
  • unknown — بديل آمن لـ any
  • never — نوع للدوال التي لا تنتهي أبدًا
  • void — عدم وجود قيمة مرتجعة


مثال على استخدام الأنواع المدمجة:



let isDone: boolean = false;let decimal: number = 42;let color: string = "أزرق";let notSure: unknown = 4;notSure = "الآن سلسلة نصية"; // مسموح

function error(message: string): never { throw new Error(message);}


2. الأنواع المساعدة (Utility Types)



توفر TypeScript أدوات مساعدة مدمجة قوية لتحويل الأنواع. إليك أكثرها فائدة:



  • Partial<T> — يجعل جميع حقول النوع T اختيارية
  • Required<T> — يجعل جميع الحقول إلزامية
  • Readonly<T> — يجعل جميع الحقول للقراءة فقط
  • Pick<T, K> — يختار المفاتيح المحددة من النوع
  • Omit<T, K> — يستبعد المفاتيح المحددة
  • Record<K, T> — ينشئ نوع كائن بمفاتيح K وقيم T
  • Exclude<T, U> — يستبعد الأنواع الموجودة في U
  • ReturnType<T> — يستخرج نوع القيمة المرتجعة للدالة


مثال على استخدام الأنواع المساعدة:



interface User {    id: number;    name: string;    email: string;}

// تحديث جزئي للمستخدمfunction updateUser(id: number, changes: Partial<User>): void { // منطق التحديث}

// للقراءة فقطconst readonlyUser: Readonly<User> = { id: 1, name: "إيفان", email: "ivan@example.com"};

// اختيار الحقولtype UserName = Pick<User, "name" | "email">;


3. المُزينات (Decorators)



المُزينات هي تصريحات خاصة تسمح بتعديل الفئات والطرق والخصائص والمعاملات. تدعم TypeScript عدة أنواع من المُزينات:



  • مُزينات الفئات — تُطبق على مُنشئ الفئة
  • مُزينات الطرق — تُطبق على طرق الفئة
  • مُزينات الخصائص — تُطبق على الخصائص
  • مُزينات المعاملات — تُطبق على معاملات الطرق


مثال على مُزين طريقة للتسجيل:



function log(target: any, propertyKey: string, descriptor: PropertyDescriptor) {    const originalMethod = descriptor.value;    descriptor.value = function (...args: any[]) {        console.log(`استدعاء ${propertyKey} مع الوسائط: ${JSON.stringify(args)}`);        return originalMethod.apply(th                    

توصيات