ts-node لـ TypeScript: دليل كامل مع أمثلة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو ts-node ولماذا هو مطلوب؟

\n\n

ts-node هو محرك TypeScript لـ Node.js، يسمح بتنفيذ ملفات TypeScript مباشرة دون تجميع مسبق إلى JavaScript. يعمل كـ REPL (حلقة القراءة-التقييم-الطباعة) وكأداة سطر أوامر، مما يوفر تكاملًا سلسًا لـ TypeScript في نظام Node.js البيئي.

\n\n

سيناريوهات الاستخدام الرئيسية:

\n
    \n
  • التطوير السريع والنمذجة الأولية — لا حاجة لانتظار تجميع كل تغيير
  • \n
  • تشغيل السكريبتات — تنفيذ ملفات TypeScript في الإنتاج (بحذر)
  • \n
  • الاختبار — تشغيل الاختبارات المكتوبة بـ TypeScript
  • \n
  • التطوير التفاعلي — وضع REPL للتجارب مع TypeScript
  • \n
  • ترحيل المشاريع — الانتقال التدريجي من JavaScript إلى TypeScript
  • \n
\n\n

على عكس النهج القياسي (التجميع عبر tsc والتشغيل عبر node)، يجعل ts-node عملية التطوير أكثر سلاسة وسرعة.

\n\n

تثبيت ts-node

\n\n

يتم التثبيت عبر npm (مدير حزم Node.js). لمطوري Python: هذا مشابه لـ pip install.

\n\n
# تثبيت عام (متاح في كل مكان)\nnpm install -g ts-node\n\n# تثبيت محلي (موصى به للمشاريع)\nnpm install --save-dev ts-node\n\n# تثبيت مع TypeScript (إذا لم يكن مثبتًا بالفعل)\nnpm install --save-dev ts-node typescript\n\n# للعمل مع إصدارات محددة من TypeScript\nnpm install --save-dev ts-node@10.9.2 typescript@5.3.3
\n\n

بعد التثبيت، تحقق من الإصدار:

\n
ts-node --version\n# الإخراج: v10.9.2
\n\n

بداية سريعة مع مثال كود

\n\n

أنشئ ملفًا باسم hello.ts:

\n\n
// hello.ts\ninterface Greeting {\n    name: string;\n    age: number;\n}\n\nfunction greet(person: Greeting): string {\n    return `مرحبًا، ${person.name}! عمرك ${person.age} سنة.`;\n}\n\nconst user: Greeting = { name: "أليكسي", age: 30 };\nconsole.log(greet(user));
\n\n

قم بتشغيله دون تجميع:

\n
ts-node hello.ts\n# الإخراج: مرحبًا، أليكسي! عمرك 30 سنة.
\n\n

للمقارنة، الطريقة العادية كانت ستستغرق خطوتين:

\n
tsc hello.ts    # تجميع إلى hello.js\nnode hello.js   # تشغيل الملف المُجمّع
\n\n

الطرق والوظائف الأساسية لـ ts-node

\n\n

1. ts-node [file.ts] — تشغيل الملف الأساسي

\n

الوصف: الأمر الرئيسي لتنفيذ ملف TypeScript. يقوم ts-node تلقائيًا بتجميع وتنفيذ الكود.

\n

المعلمات:

\n
    \n
  • file.ts — مسار ملف TypeScript
  • \n
  • --project أو -P — مسار ملف tsconfig.json
  • \n
  • --transpile-only — الترجمة فقط (أسرع، ولكن بدون التحقق من الأنواع)
  • \n
\n

مثال:

\n
# تشغيل عادي\nts-node app.ts\n\n# مع تحديد الإعدادات\nts-node --project tsconfig.prod.json app.ts\n\n# ترجمة فقط (أسرع)\nts-node --transpile-only app.ts
\n\n

2. ts-node --eval — تنفيذ كود من سلسلة نصية

\n

الوصف: يسمح بتنفيذ كود TypeScript مُمرر كسلسلة نصية دون إنشاء ملف.

\n

المعلمات:

\n
    \n
  • -e أو --eval — سلسلة نصية تحتوي على كود TypeScript
  • \n
  • -p أو --print — طباعة نتيجة التنفيذ
  • \n
\n

مثال:

\n
# تعبير بسيط\nts-node -e "console.log('Hello from ts-node!')"\n\n# باستخدام ميزات TypeScript\nts-node -e "\ninterface User { name: string }\nconst user: User = { name: 'ماريا' };\nconsole.log(user.name);\n"\n\n# مع طباعة النتيجة\nts-node -p "1 + 2"
\n\n

3. ts-node --compiler-options

توصيات