ميزات TypeScript 5 الجديدة — دليل شامل لمعامل satisfies والـ Decorators
USD/JPY分散は、為替急変局面で一方通貨の過大シェアを防ぎ、月次の再バランスと上限規則で感情的な一括投資を抑える実践設計です。
ميزات TypeScript 5 الجديدة — دليل شامل لمعامل satisfies والـ Decorators
ملخص سريع: TypeScript 5 يُقدّم معامل
satisfiesلفحص الأنواع دون التأثير على الاستنتاج، ونظام Decorators معياري وفق TC39، إلى جانب تحسينات جوهرية في الأداء تبلغ 10–20%.
أصدرت Microsoft إصدار TypeScript 5.0 في مارس 2023، وما تلاه من إصدارات فرعية تحمل تحسينات متراكمة. يُعدّ هذا الإصدار من أكثر الإصدارات تأثيرًا منذ TypeScript 4، إذ أعاد رسم طريقة التعامل مع الأنواع في مشاريع JavaScript الكبرى.
معامل satisfies
يُعدّ satisfies أبرز إضافة في TypeScript 5. يتيح هذا المعامل التحقق من توافق قيمة مع نوع معيّن، مع الاحتفاظ بالنوع الأكثر دقة الذي استنتجه المُحوّل:
type Colors = Record<string, [number, number, number] | string>;
const palette = {
red: [255, 0, 0],
green: "#00ff00",
blue: [0, 0, 255],
} satisfies Colors;
// يُستنتج النوع بدقة:
// palette.red → [number, number, number]
// palette.green → stringقبل satisfies، كان المطوّر مضطرًا للاختيار بين دقة الاستنتاج أو التحقق من النوع، لكن المعامل الجديد يجمع الاثنين.
Decorators المعيارية (TC39 Stage 3)
تبنّى TypeScript 5 مواصفة TC39 Stage 3 للـ Decorators بدلًا من تطبيقه التجريبي القديم:
// المعيار الجديد
function logged(target: any, context: ClassMethodDecoratorContext) {
return function (this: any, ...args: any[]) {
console.log(`Calling ${String(context.name)}`);
return target.call(this, ...args);
};
}
class UserService {
@logged
getUser(id: number) {
return { id, name: 'User' };
}
}التطبيق الجديد يختلف جوهريًا عن القديم (--experimentalDecorators)؛ لذا يستلزم الترقية مراجعة الكود الموجود.
تحسينات الأداء
قدّم TypeScript 5 تحسينات لافتة في سرعة البناء:
| المقياس | TypeScript 4.9 | TypeScript 5.0 | التحسّن |
|---|---|---|---|
| وقت البناء (مشروع كبير) | 100% | 82% | 18% أسرع |
| استهلاك الذاكرة | 100% | 85% | 15% أقل |
| حجم الحزمة | 100% | 80% | 20% أصغر |
const Type Parameters
يُتيح TypeScript 5 استخدام const في المعاملات النوعية للحفاظ على القيم الحرفية:
function getFirst<const T extends readonly unknown[]>(arr: T): T[0] {
return arr[0];
}
const result = getFirst([1, 2, 3] as const);
// النوع: 1 (وليس number)Multiple Config Files
يدعم TypeScript 5 الآن مصفوفات في extends داخل tsconfig.json:
{
"extends": ["@tsconfig/strictest/tsconfig.json", "@tsconfig/node18/tsconfig.json"],
"compilerOptions": {
"outDir": "dist"
}
}All Enums are Union Enums
باتت جميع enums في TypeScript 5 من نوع union، ما يُتيح تضييق النوع بشكل أكثر دقة:
enum Color { Red, Green, Blue }
function handleColor(c: Color) {
if (c === Color.Red) {
// c هنا من النوع Color.Red تحديدًا
}
}التحديث من TypeScript 4
أهم نقاط الانتباه عند الترقية:
- 1Decorators: إذا كنت تستخدم
--experimentalDecorators، راجع التوافق مع المعيار الجديد - 2Resolution Algorithm: تغيّر خوارزمية تحليل الوحدات — تحقق من
moduleResolution - 3Strictness: بعض فحوصات الأنواع باتت أكثر صرامة
الأسئلة الشائعة
ما الفرق بين satisfies و as؟
satisfies يتحقق دون تغيير النوع المستنتج، بينما as يُجبر المُحوّل على قبول نوع محدد متجاوزًا الفحص.
هل الـ Decorators الجديدة متوافقة مع المكتبات القديمة؟
ليس بالضرورة — مكتبات مثل class-validator وtypeorm بدأت التحديث لكن قد تحتاج إصدارات أحدث.
هل يمكن استخدام TypeScript 5 مع React القديم؟
نعم، TypeScript 5 متوافق مع React 17 وما فوق بدون مشاكل.
ما أهم ميزة في TypeScript 5 من الناحية العملية؟
satisfies يحل مشكلة شائعة جدًا في كود الإنتاج — التحقق من الأنواع مع الحفاظ على دقة الاستنتاج.
كيف أُهيئ Decorators بالمعيار الجديد؟
أزل experimentalDecorators: true من tsconfig.json واستخدم الـ Decorators مباشرة.
هل التحسينات في الأداء ملموسة في مشاريع صغيرة؟
التحسّن أوضح في المشاريع الكبيرة (1000+ ملف)، لكن حتى المشاريع الصغيرة تستفيد من تقليص حجم الحزمة.
🔧 Related Free Tools
ذو صلة
USD/JPY分散は、為替急変局面で一方通貨の過大シェアを防ぎ、月次の再バランスと上限規則で感情的な一括投資を抑える実践設計です。...
IT6 طرق لتحقيق دخل جانبي باستخدام ChatGPT — دليل عملي ومجرّب لتحقيق الربح في 2026USD/JPY分散は、為替急変局面で一方通貨の過大シェアを防ぎ、月次の再バランスと上限規則で感情的な一括投資を抑える実践設計です。...
IT2026 ChatGPT مقابل Claude مقابل Gemini — مقارنة أداء وسعر وطرق استخدام روبوتات الدردشة بالذكاء الاصطناعيUSD/JPY分散は、為替急変局面で一方通貨の過大シェアを防ぎ、月次の再バランスと上限規則で感情的な一括投資を抑える実践設計です。...
ITتحسين سرعة المواقع الإلكترونية 2026 — كيفية تحقيق درجة 90+ في Core Web VitalsUSD/JPY分散は、為替急変局面で一方通貨の過大シェアを防ぎ、月次の再バランスと上限規則で感情的な一括投資を抑える実践設計です。...