النوع is a مجموعة.
منهجٌ يُدرَّس من الجذور. لا تُحفظ هنا قواعد؛ تُشتَقّ. نقرأ نظام أنواع TypeScript كما هو حقاً: نظرية مجموعات ومُبرهِن نظريات صغير، يبرهن عن عالمٍ يختفي قبل أن يعمل البرنامج. كل غرابة ستراها — تتساقط من جملةٍ واحدة.
هذا المنهج يفترض أنك تعرف C (المؤشرات، الذاكرة، الأنواع
الثابتة) وPython (الديناميكية، duck typing)، ومعك أساسيات
JavaScript. سنربط كل فكرة بالفرق التصميمي عن هذه اللغات.
شغّل دائماً في الوضع الصارم "strict": true — بدونه تدرس نظاماً
آخر مشوَّهاً.
القاعدة الذهبية الوحيدة
حين يرفض المترجم شيئاً، لا تسأل «كيف أُسكِته؟» — اسأل «أي ادّعاءٍ رياضي يقول إنه كاذب؟». المترجم لا يزعجك؛ هو يبرهن. مهمتك أن تفهم البرهان.
الخريطة
الخريطة لا تُكشف كاملة. تنمو عندنا شجرتان بالتوازي — «الأنواع كمجموعات» و«القيم وقت التشغيل» — تبدوان منفصلتين حتى تلتحما فجأة في الإقليم الأخير، حين تكتشف أن الفجوة بينهما هي كل شيء.
في مكانٍ ما بالأسفل، ستكتب نوعاً يحسب، ويتفرّع، ويستدعي نفسه تكرارياً. نظام أنواع TypeScript لغة برمجة كاملة بذاتها — مختبئة داخل لغة برمجة. لن نقول لك هذا الآن؛ ستكتشفه بيدك.
الأقاليم
المخرجات المرافقة
تُفتح في نهاية الرحلة، حين تكون الشجرة قد اكتملت بيدك.
بالترتيب — كل إقليم يفترض ما قبله. الألغاز ليست اختيارية؛
هي المكان الذي يحدث فيه الفهم. لا تقرأ الحل قبل أن تكافح؛ لن تجد حلولاً
جاهزة قريبة من اللغز عمداً. استعمل
TS Playground أو
tsc --noEmit — جرّب، اكسر، واقرأ رسالة الخطأ كناتجٍ للمُبرهِن
لا كعقوبة.