الدوال المدمجة في TypeScript

الدوال المدمجة في TypeScript

توضح هذه المقالة الدوال المدمجة في TypeScript۔

YouTube Video

الدوال المدمجة في TypeScript

الدوال المدمجة في TypeScript هي دوال مريحة تُستخدم لتنفيذ العمليات اليومية بطريقة مختصرة۔ هذه دوال JavaScript القياسية مع أمان إضافي لأنواع البيانات، مما يجعلها مفيدة بشكل خاص أثناء البرمجة في TypeScript۔ فيما يلي، سنشرح بالتفصيل بعض الدوال المدمجة المهمة، وكيفية استخدامها، وتحديد أنواع البيانات۔

ما هي الدوال المدمجة؟

تعتمد الدوال المدمجة في TypeScript على دوال JavaScript القياسية. ويساهم تطبيق نظام أنواع TypeScript في تعزيز فحص الأنواع وإكمال الكود تلقائيًا۔ تشمل الدوال الرئيسية ما يلي:۔

  • parseInt()
  • parseFloat()
  • isNaN()
  • isFinite()
  • Number()
  • String()
  • Array()
  • Array.isArray()
  • eval()
  • encodeURI()
  • decodeURI()
  • setTimeout()
  • setInterval()

تُستخدم هذه الدوال على نطاق واسع في مشاريع TypeScript لتحويل البيانات وتقويمها بشكل مختصر۔

parseInt()

الدالة parseInt() تُستخدم لتحويل نص (string) إلى عدد صحيح (integer)۔ يمكنك تحديد النظام العددي (مثل النظام الثنائي أو العشري) كمعامل ثانٍ۔ في TypeScript، يمكنك تحديد النوع كالتالي:۔

 1function stringToInt(value: string, radix: number = 10): number {
 2    const result: number = parseInt(value, radix);
 3    if (isNaN(result)) {
 4        throw new Error('Invalid number format');
 5    }
 6    return result;
 7}
 8
 9console.log(stringToInt("42")); // 42
10console.log(stringToInt("101010", 2)); // 42 (converted from binary)
  • حدد أن المدخلات هي نص (string) باستخدام value: string
  • يتم تحديد نوع القيمة المرجعة بشكل صريح كنوع number۔

parseFloat()

الدالة parseFloat() تُستخدم لتحويل النص (string) إلى عدد عشري (floating-point number)۔

 1function stringToFloat(value: string): number {
 2    const result: number = parseFloat(value);
 3    if (isNaN(result)) {
 4        throw new Error('Invalid number format');
 5    }
 6    return result;
 7}
 8
 9console.log(stringToFloat("3.14")); // 3.14
10console.log(stringToFloat("2.71828")); // 2.71828
  • يمكن للدالة parseFloat() التعامل بشكل صحيح مع الأرقام التي تشمل النقاط العشرية۔
  • من خلال تحديد النوع، يمكنك تلقي تحذير أثناء فحص الأنواع إذا لم تكن المدخلات عددًا۔

isNaN()

الدالة isNaN() تُستخدم لتحديد ما إذا كانت القيمة المعطاة هي NaN (ليس عددًا)۔ مثال لاستخدامها في TypeScript هو كالتالي:۔

1function checkNaN(value: unknown): boolean {
2    return isNaN(Number(value));
3}
4
5console.log(checkNaN("hello")); // true
6console.log(checkNaN(123)); // false
  • النوع unknown هو نوع عام يمكنه قبول أي نوع من البيانات۔
  • قم بالتحويل إلى عدد باستخدام الدالة Number()، ثم تحقق مما إذا كانت النتيجة هي NaN۔

isFinite()

الدالة isFinite() تُستخدم لتحديد ما إذا كانت القيمة محدودة۔

1function isValueFinite(value: unknown): boolean {
2    return isFinite(Number(value));
3}
4
5console.log(isValueFinite("100")); // true
6console.log(isValueFinite(Infinity)); // false
  • تستخدم هذه الدالة أيضًا Number() لتحويل القيمة إلى عدد قبل التحقق۔

Number()

الدالة Number() تُستخدم لتحويل النصوص أو القيم المنطقية إلى أعداد۔

1function convertToNumber(value: string | boolean): number {
2    return Number(value);
3}
4
5console.log(convertToNumber("42")); // 42
6console.log(convertToNumber(true)); // 1
  • في هذا المثال، يتم استخدام نوع الاتحاد string | boolean لتحديد أن الوسيطة إما سلسلة نصية أو قيمة منطقية۔

String()

تقوم الدالة String() بتحويل الأرقام أو القيم المنطقية إلى سلاسل نصية۔

1function convertToString(value: number | boolean): string {
2    return String(value);
3}
4
5console.log(convertToString(123)); // "123"
6console.log(convertToString(false)); // "false"
  • في هذا المثال، يتم إنشاء دالة تقبل نوع الاتحاد number | boolean وتحول النتيجة إلى سلسلة نصية۔

Array()

يتم استخدام وظيفة Array() لإنشاء مصفوفة جديدة.۔ بالإضافة إلى ذلك، توفر العديد من الطرق المفيدة لإنشاء مصفوفات فرعية من المصفوفات الموجودة أو استخراج عناصر معينة.۔

 1function createArray(): Array<number> {
 2    return Array(1, 2, 3, 4, 5); // 新しい配列を作成
 3}
 4
 5function getSubArray(array: Array<number>): Array<number> {
 6    return array.slice(1, 4); // サブ配列を作成
 7}
 8
 9const numbers = createArray();
10console.log(numbers); // [1, 2, 3, 4, 5]
11
12const subArray = getSubArray(numbers);
13console.log(subArray); // [2, 3, 4]
  • يوضح هذا المثال كيفية إنشاء مصفوفة جديدة باستخدام وظيفة Array() وإنشاء مصفوفة فرعية باستخدام طريقة slice()

Array.isArray()

تحدد الدالة Array.isArray() ما إذا كانت القيمة المعطاة تمثل مصفوفة۔

1function checkArray(value: unknown): boolean {
2    return Array.isArray(value);
3}
4
5console.log(checkArray([1, 2, 3])); // true
6console.log(checkArray("Not an array")); // false
  • باستخدام النوع unknown، يمكننا قبول أي نوع مع التحقق مما إذا كانت القيمة عبارة عن مصفوفة۔

eval()

وظيفة eval() تقوم بتقييم سلسلة كنص تعبير وتعيد النتيجة.۔ ومع ذلك، لا يُنصح باستخدامها بسبب مخاطر الأمان والأداء.۔

1function evaluateExpression(expression: string): any {
2    return eval(expression);
3}
4
5console.log(evaluateExpression("2 + 3")); // 5
6console.log(evaluateExpression("'Hello ' + 'World!'")); // "Hello World!"
  • في هذا المثال، يتم تقييم التعبير المقدم كسلسلة باستخدام eval ويتم طباعة النتيجة.۔

encodeURI()

وظيفة encodeURI() ترمز عنوان URL بالكامل وتستثني بعض الأحرف.۔

1const uri = "https://example.com/page?name=John Doe&age=30";
2const encodedURI = encodeURI(uri);
3
4console.log(encodedURI); // "https://example.com/page?name=John%20Doe&age=30"
  • يقوم هذا المثال بترميز المسافات إلى %20 لإنتاج رابط URL آمن.۔

decodeURI()

وظيفة decodeURI() تقوم بفك ترميز عنوان URL المشفر إلى تنسيقه الأصلي.۔

1const encodedURI = "https://example.com/page?name=John%20Doe&age=30";
2const decodedURI = decodeURI(encodedURI);
3
4console.log(decodedURI); // "https://example.com/page?name=John Doe&age=30"
  • يقوم هذا المثال بفك ترميز سلسلة عنوان URL مشفر وإعادته إلى الشكل الأصلي.۔

setTimeout()

وظيفة setTimeout() تقوم بتنفيذ وظيفة محددة بعد مدة التأخير المعطاة (بالملي ثانية).۔

1setTimeout(() => {
2    console.log("Executed after 2 seconds");
3}, 2000);
  • يقوم هذا المثال بعرض رسالة بعد ثانيتين.۔

setInterval()

وظيفة setInterval() تقوم بتكرار تنفيذ وظيفة محددة على فترات زمنية محددة (بالملي ثانية).۔

1let count = 0;
2const intervalId = setInterval(() => {
3    count++;
4    console.log(`Interval executed ${count} time(s)`);
5    if (count === 3) {
6        clearInterval(intervalId); // Stops the interval after 3 executions
7    }
8}, 1000);
  • يقوم هذا المثال بعرض رسالة على فواصل زمنية مدتها ثانية واحدة ويتوقف بعد تنفيذها ثلاث مرات.۔

الخاتمة

تتيح الدوال المدمجة في TypeScript كتابة شفرة برمجية أكثر أمانًا وكفاءة من خلال إضافة السلامة النمطية إلى دوال JavaScript القياسية۔ تعمل هذه الدوال على تبسيط المهام البرمجية اليومية وتحسين قابلية قراءة الشفرة وصيانتها۔ يتم استخدام كل دالة بشكل صحيح وفقًا لغرضها، ومن خلال تحديد الأنواع، يمكنها اكتشاف الأخطاء مسبقًا، مما يلعب دورًا مهمًا في تعزيز موثوقية عملية التطوير۔

باستخدام TypeScript، يمكن الاستفادة من التحقق النمطي الثابت مع الاستفادة من مرونة JavaScript۔

يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔

YouTube Video