اكتشف كل الميزات التي يقدمها هذا الإصدار الأخير من TypeScript.

تواصل TypeScript ، لغة البرمجة الشائعة لدى Microsoft ، إثارة إعجابها بإصدارها الأخير ، TypeScript 5.1. مليء بالميزات والتحسينات الجديدة والمثيرة ، يعد هذا الإصدار بنقل تجربة الترميز إلى تجربة جديدة مرتفعات.

إرجاع دالة مبسطة وأنواع الملحقات

في JavaScript ، عندما تقوم بإنشاء وظيفة وتنفيذه دون مواجهة بيان إرجاع ، فإنه يقوم تلقائيًا بإرجاع القيمة غير معرف.

قدم TypeScript 5.1 ميزة جديدة تسمح للوظائف بإرجاع غير محددة بحذف عبارة الإرجاع تمامًا. يعمل هذا التحسين على تحسين قابلية قراءة الكود وإيجازه.

وظيفةرسالة(رسالة: خيط): غير معرف{
وحدة التحكم.log (رسالة) ؛
// لا يوجد بيان عودة مطلوب هنا
}

يستخدم هذا المثال الوظيفة رسالة لعرض رسالة على وحدة التحكم. ومع ذلك ، لا تقوم الدالة بشكل صريح بإرجاع أي قيمة.

يقدم TypeScript 5.1 ميزة جديدة تسمح باستخدام أنواع غير مرتبطة بالحسابات والمحددات ، طالما أنك تقدم تعليقات توضيحية واضحة من النوع.

يثبت هذا التحسين أنه مفيد للغاية في المواقف التي تحتاج فيها إلى فرض أنواع مميزة للوصول إلى خاصية وتعديلها.

فصل مستخدم {
خاص _اسم: خيط | باطل = باطل;

تعيين الاسم (جديدالاسم: خيط) {
هذا._name = newName ؛
}

instagram viewer

يحصل اسم(): خيط {
يعودهذا._اسم؟؟ 'مجهول';
}
}

في هذا المثال ، تحتوي فئة المستخدم على ملف _اسم الخاصية التي يمكن أن تكون إما خيط أو باطل. ال اسم يأخذ واضع سلسلة اسم جديد وتعيينه إلى _اسم. يقوم الاسم getter بإرجاع قيمة _اسم إذا لم يكن كذلك باطل، أو مجهول اذا كانت.

يسمح لك هذا بفرض أنه لا يمكن تعيين خاصية الاسم إلا بسلسلة ، ولكن عند الحصول على خاصية الاسم ، يمكن أن تكون إما سلسلة أو مجهول إذا لم يتم تعيينه بعد.

تتيح هذه الميزة تعريفات أنواع أكثر مرونة وتعبيرية كما هو موضح في المثال أدناه.

واجهه المستخدم CSSStyleRule {
// يقرأ دائمًا كـ "CSSStyleDecisions"
يحصل style (): CSSStyleDeclusion ؛

// يمكن فقط كتابة "سلسلة" هنا.
تعيين النمط (newValue: خيط);
}

في المثال أعلاه ، تحتوي خاصية style على دالة getter تُرجع CSSStyleDeclusion و setter يقبل سلسلة. هذه الأنواع غير مرتبطة ، لكن TypeScript 5.1 يسمح بهذا النوع من تعريف النوع.

تحسينات JSX

يقدم TypeScript 5.1 تحسينات عديدة لـ JSX. يسمح الآن بفحص النوع المنفصل بين عناصر JSX وأنواع علامات JSX ، والتي يمكن أن تكون كذلك مفيد للمكتبات مثل redux تسمح للمكونات بإرجاع أكثر من مجرد عناصر JSX.

يستورد * مثل تتفاعل من"تتفاعل";

غير متزامنوظيفةغير متزامن المكون() {
يعود

محملة </div>;
}

// هذا مسموح به الآن:
يترك عنصر = ;

في هذا المثال ، فإن ملف غير متزامن المكون الوظيفة هي وظيفة غير متزامنة تقوم بإرجاع عنصر JSX. يتيح لك TypeScript 5.1 استخدام هذا النوع من الوظائف كمكوِّن JSX ، وهو ما لم يكن ممكنًا في الإصدارات السابقة.

يقدم TypeScript 5.1 أيضًا دعمًا لتحويل JSX الجديد الذي تم تقديمه في React 17. يتيح لك هذا استخدام JSX دون استيراد React.

// قبل
يستورد تتفاعل من"تتفاعل";

وظيفةعنصر() {
يعود

أهلاً بالعالم!/h1>;
}

// بعد
وظيفةعنصر() {
يعود

أهلاً بالعالم!/h1>;
}

في المثال أعلاه ، ترجع الدالة Component عنصر JSX. في TypeScript 5.1 و React 17 ، لم تعد بحاجة إلى استيراد React لاستخدام JSX.

تحسينات الأداء والتغييرات المهمة في TypeScript 5.1

يقدم TypeScript 5.1 تحسينات عديدة لتحسين الأداء ، بما في ذلك تحسينات السرعة والذاكرة وحجم الحزمة ، تجنب إنشاء مثيل من النوع غير الضروري ، والتحقق من الحالة السلبية للأحرف الحرفية الموحدة ، وتقليل المكالمات إلى الماسح الضوئي لـ JSDoc تفسير.

فيما يلي مثال على تجنب إنشاء مثيل غير ضروري للنوع داخل أنواع الكائنات المعروف أنها لا تحتوي على مراجع لمعلمات النوع الخارجي ، وعمليات فحص أسرع للقيم الحرفية الموحدة.

يكتب الاتحاد = 'أ' | 'ب' | "ج";

وظيفةيفحص(القيمة: الاتحاد) {
// ...
}

في هذا المثال ، يمكن لـ TypeScript 5.1 التحقق بسرعة مما إذا كانت القيمة جزءًا من نوع Union دون الحاجة إلى التحقق من كل نوع في الاتحاد.

إليك مثال آخر:

يكتب النقطة = {x: رقم، ص: رقم };

وظيفةيترجم(النقطة: النقطة ، dx: رقم، دى: رقم): نقطة{
يعود {x: point.x + dx، y: point.y + dy} ؛
}

يترك p: النقطة = {x: 1، ص: 2 };
ع = ترجم (ص ، 1, 1);

في هذا المثال ، يعد نوع النقطة نوع كائن لا يحتوي على أي معلمات للنوع. عندما تستدعي وظيفة الترجمة ، يمكن أن يتجنب TypeScript 5.1 إنشاء مثيل غير ضروري للنوع ، مما قد يؤدي إلى تسريع عملية التحقق من الكتابة بشكل كبير.

احتضان TypeScript 5.1

يقدم TypeScript 5.1 مجموعة من الميزات القوية والتحسينات التي أحدثت ثورة في تطوير JavaScript. من إرجاع الوظيفة المبسطة إلى تحسينات JSX وتعزيز الأداء ، يمكّنك TypeScript 5.1 من كتابة تعليمات برمجية أكثر وضوحًا وتعبيرًا مع تحسين فحص النوع والأداء العام.

من خلال تبني TypeScript 5.1 ، يمكنك إطلاق العنان لإمكانيات جديدة ورفع مشاريع JavaScript الخاصة بك إلى آفاق جديدة من الكفاءة والابتكار. اجعل TypeScript 5.1 بوابتك لتجربة تطوير JavaScript أكثر تقدمًا وانسيابية.