Documentation: getEnumerationContent Function in intlayer
Description:
تقوم دالة getEnumerationContent باسترجاع المحتوى المتطابق مع كمية محددة بناءً على شروط محددة مسبقًا في كائن العد. يتم تعريف الشروط كمفاتيح، ويتم تحديد أولويتها وفقًا لترتيبها في الكائن.
Parameters:
enumerationContent: QuantityContent<Content>
- Description: كائن يمثل فيه المفاتيح الشروط (مثل <=, <, >=, =) والقيم تمثل المحتوى المقابل. يحدد ترتيب المفاتيح أولويتها في المطابقة.
- Type: QuantityContent<Content>
- Content يمكن أن يكون من أي نوع.
quantity: number
- Description: القيمة الرقمية المستخدمة للمطابقة مع الشروط في enumerationContent.
- Type: number
Returns:
- Type: Content
- Description: المحتوى المتطابق مع أول شرط متطابق في enumerationContent. إذا لم يتم العثور على تطابق، فإنه يعود إلى معالجة بناءً على التنفيذ (مثل، خطأ أو محتوى احتياطي).
Example Usage:
Basic Usage:
typescript
import { getEnumerationContent } from "@intlayer/config/client";
const content = getEnumerationContent(
{
"<=-2.3": "لديك أقل من -2.3",
"<1": "لديك أقل من واحد",
"2": "لديك اثنان",
">=3": "لديك ثلاثة أو أكثر",
},
2
);
console.log(content); // Output: "لديك اثنان"
Priority of Conditions:
typescript
const content = getEnumerationContent(
{
"<4": "لديك أقل من أربعة",
"2": "لديك اثنان",
},
2
);
console.log(content); // Output: "لديك أقل من أربعة"
Edge Cases:
No Matching Condition:
- إذا لم يتطابق أي شرط مع الكمية المقدمة، ستقوم الدالة إما بإرجاع undefined أو التعامل مع السيناريو الافتراضي/الاحتياطي بشكل صريح.
Ambiguous Conditions:
- إذا تداخلت الشروط، فإن أول شرط متطابق (بناءً على ترتيب الكائن) يأخذ الأولوية.
Invalid Keys:
- تفترض الدالة أن جميع المفاتيح في enumerationContent صالحة وقابلة للتحليل كشروط. قد تؤدي المفاتيح غير الصالحة أو التي تمت صياغتها بشكل غير صحيح إلى سلوك غير متوقع.
TypeScript Enforcement:
- تضمن الدالة أن نوع Content متسق عبر جميع المفاتيح، مما يسمح بسلامة النوع في المحتوى المسترجع.
Notes:
- يتم استخدام أداة findMatchingCondition لتحديد الشرط المناسب بناءً على الكمية المعطاة.
إذا كان لديك فكرة لتحسين هذه الوثيقة، فلا تتردد في المساهمة من خلال تقديم طلب سحب على GitHub.
رابط GitHub للتوثيق