الدوال العامة: معاملات الأنواع
أضيفوا معاملات أنواع إلى الدوال لإعادة استخدامها
الدوال العامة: معاملات الأنواع درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 4 دروس في المجموع.
مرحبًا
المشكلة التي تحلها الأنواع العامة
// Without generics — loses type info
function first(arr: any[]): any { return arr[0]; }
// With generics — type-safe
function first<T>(arr: T[]): T { return arr[0]; }صياغة معامل النوع
function identity<T>(value: T): T {
return value;
}
const n = identity(42); // T is number
const s = identity('hello'); // T is stringاستنتاج النوع للدوال العامة
function wrap<T>(val: T): T[] { return [val]; }
const nums = wrap(42); // T inferred as number -> number[]
const strs = wrap('hi'); // T inferred as string -> string[]معاملات أنواع متعددة
function pair<A, B>(a: A, b: B): [A, B] {
return [a, b];
}
const p = pair(1, 'hello'); // [number, string]دوال المصفوفات العامة
function filterNull<T>(arr: (T | null)[]): T[] {
return arr.filter((x): x is T => x !== null);
}وسائط الأنواع الصريحة
function create<T>(): T | null { return null; }
const user = create<User>(); // T cannot be inferred — must be explicitالأنواع العامة مقارنةً بـ any
function echo<T>(val: T): T { return val; }
const n: number = echo(42); // OK
// const s: string = echo(42); // Error — T is numberدوال الأسهم العامة
const identity = <T>(val: T): T => val;
// In .tsx files:
const identity2 = <T,>(val: T): T => val;إرجاع نوع مختلف
function mapArray<T, U>(arr: T[], fn: (item: T) => U): U[] {
return arr.map(fn);
}
const lengths = mapArray(['hello', 'world'], s => s.length);
// lengths: number[]معاملات عامة بقيم افتراضية
function createList<T = string>(): T[] { return []; }
const list = createList(); // T defaults to stringفحص سريع
مراجعة
الأسئلة الشائعة
هل درس «الدوال العامة: معاملات الأنواع» مجاني؟
نعم — نص درس «الدوال العامة: معاملات الأنواع» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 4 دروس في المجموع.
ماذا ستتعلم في «الدوال العامة: معاملات الأنواع»؟
أضيفوا معاملات أنواع إلى الدوال لإعادة استخدامها تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟
لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «الدوال العامة: معاملات الأنواع»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟
نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الدوال العامة: معاملات الأنواع
- الواجهات العامة والأسماء المستعارة للأنواع
- قيود الأنواع العامة باستخدام extends
- معاملات الأنواع الافتراضية