جاري التحميل...
جاري التحميل...
string, number, boolean والمزيد
يوفر TypeScript عدة أنواع أولية تشكل اللبنات الأساسية لنظام الأنواع الخاص بك.
يمكن كتابة المصفوفات بطريقتين في TypeScript:
let numbers: number[] = [1, 2, 3];
let names: Array<string> = ['Ali', 'Sara'];يمكن كتابة الكائنات باستخدام الواجهات أو أسماء الأنواع البديلة:
interface User {
name: string;
age: number;
email?: string; // اختياري
}
const user: User = {
name: 'Ahmed',
age: 25
};💡 نقطة رئيسية:
العلامة ? تُعيّن الخاصية كاختيارية. لن يطلب TypeScript توفيرها.
تسمح أنواع الاتحاد للمتغير بحمل أحد عدة أنواع:
let id: string | number;
id = '123'; // مقبول
id = 123; // مقبول
id = true; // خطأ!يمكن لـ TypeScript استنتاج الأنواع تلقائياً من القيمة المعينة. لا تحتاج دائماً إلى تحديد الأنواع صراحةً.
let message = 'Hello'; // يستنتج TypeScript نوع string
let count = 42; // يستنتج TypeScript نوع number💡 أفضل ممارسة:
اترك TypeScript يستنتج الأنواع عندما يكون ممكناً. أضف أنواعاً صريحة فقط عندما يكون ذلك ضرورياً للوضوح أو عندما لا يكون الاستنتاج كافياً.
كيف تُعرّف مصفوفة من الأرقام؟
ماذا تعني العلامة ? في واجهة؟
ما هو استنتاج الأنواع؟
أنشئ متغيرات بأنواع مختلفة (string، number، boolean، مصفوفات، كائنات بواجهات، وأنواع اتحاد). اختبر أي القيم مقبولة وأيها تسبب أخطاء.
الحل:
// Create variables with different types
let name: string = 'Ahmed';
let age: number = 25;
let isActive: boolean = true;
// Arrays
let numbers: number[] = [1, 2, 3];
let names: Array<string> = ['Ali', 'Sara'];
// Interface
interface User {
name: string;
age: number;
email?: string; // optional
}
const user: User = {
name: 'Ahmed',
age: 25
};
// Union type
let id: string | number;
id = '123'; // OK
id = 123; // OK
// id = true; // Error!الأنواع الأولية:
صيغة النوع:
ما الفرق بين any و unknown؟
الإجابة:
any يلغي الـ type checking. unknown آمن — يجب تحويل نوعه قبل الاستخدام.
متى نستخدم Union Types؟
الإجابة:
عندما يكون المتغير أكثر من نوع واحد. مثلاً: string | number
استخدم readonly
لمنع تعديل المصفوفات والكائنات