اتحاد الأنواع (Union)
يسمح للمتغيّر بأن يكون أحد عدة أنواع، باستخدام |:
let id: string | number;
id = 101; // ✅
id = "A101"; // ✅
id = true; // ❌ خطأ
التضييق (Narrowing)
نتحقّق من النوع قبل التعامل معه:
function printId(id: string | number) {
if (typeof id === "string") {
console.log(id.toUpperCase()); // TS يعرف أنه نص هنا
} else {
console.log(id + 1); // ورقم هنا
}
}
الأنواع الحرفية (Literal Types)
نحصر القيم في مجموعة محدّدة بالضبط:
type Direction = "up" | "down" | "left" | "right";
let move: Direction = "up"; // ✅
move = "diagonal"; // ❌ خطأ — غير مسموح
مفيدة جدًا لمنع القيم الخاطئة:
type Status = "loading" | "success" | "error";
function setStatus(s: Status) {
console.log(s);
}
setStatus("success"); // ✅
🎯 التالي: TypeScript مع React.