"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > إطلاق العنان لقوة TypeScript's \"as const\": الميزة التي تم الاستهانة بها والتي تحتاج إلى معرفتها

إطلاق العنان لقوة TypeScript's \"as const\": الميزة التي تم الاستهانة بها والتي تحتاج إلى معرفتها

تم النشر بتاريخ 2024-11-08
تصفح:218

Unlocking the Power of TypeScript

عند مناقشة الميزات الأكثر استخفافًا في TypeScript، فإن الميزة التي غالبًا ما تطير تحت الرادار هي التأكيد الثابت. هذه الميزة مفيدة بشكل لا يصدق في سيناريوهات مختلفة، وتوفر فوائد كبيرة للمطورين.

فهم "كـ const"

للبدء، دعونا نحدد ما يفعله const. تخيل أن لديك كائنًا مثل هذا:

const routes = {
  home: "/home",
  profile: "/profile",
  notifications: "/notification",
};

إذا قمت بالتمرير فوق خصائص المسارات، ستلاحظ أنها مكتوبة كسلسلة. على سبيل المثال، يتم كتابةways.home كسلسلة، وليس "/home". وذلك لأن TypeScript يفترض أن هذه الخصائص قد تتغير، لذا فهو يستنتجها كسلاسل قابلة للتغيير.

الآن، فكر في وظيفة يجب أن تقبل هذه المسارات المحددة فقط. يمكنك تحديد الأنواع مثل هذا:

function changeRoute(route: "home" | "profile" | "notifications") {
  // navigate to route
}

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

جعل الأشياء غير قابلة للتغيير

هنا يأتي دور const. باستخدام const، يمكنك جعل الكائن غير قابل للتغيير، وسوف يستنتج TypeScript الأنواع الحرفية بدلاً من مجرد سلسلة.

const routes = {
  home: "/home",
  profile: "/profile",
  notifications: "/notification",
} as const;

الآن، يتم كتابةutes.home كـ "/home"، وutes.notifications كـ "/notifications"، وهكذا. يضمن هذا الثبات عدم إمكانية تغيير هذه الخصائص، ويتعرف TypeScript على قيمها المحددة.

حالة الاستخدام العملي

لندمج كـ const في دالة:

function changeRoute(route: typeof routes[keyof typeof routes]) {
  // navigate to route
}

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

أنواع الاستخراج

هناك جانب قوي آخر لـ const وهو كيفية تمكين استخراج النوع. على سبيل المثال:

type Routes = (typeof routes)[keyof typeof routes];

يستخرج هذا النوع من التعريف قيم كائن المسارات ديناميكيًا، مما يجعل الوظيفة أكثر قابلية للصيانة ويقلل التكرار.

خاتمة

يعد التأكيد as const في TypeScript ميزة متعددة الاستخدامات وقوية يمكنها تحسين أمان الكتابة بشكل كبير وتقليل التكرار في التعليمات البرمجية الخاصة بك. من خلال جعل الكائنات غير قابلة للتغيير وتمكين الاستدلال الدقيق للنوع، فإنه يبسط صيانة وتوسيع قواعد التعليمات البرمجية. جربه، وسترى كيف يمكنه تحسين مشاريع TypeScript الخاصة بك!
برمجة سعيدة!

[الإفصاح: هذه المقالة عبارة عن جهد تعاوني، يجمع بين أفكاري الخاصة بمساعدة ChatGPT لتحسين التعبير.]

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/sharoztanveer/unlocking-the-power-of-typescripts-as-const-the-underrated-feature-you-need-to-know-25l7?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] للحذف
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3