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

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

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

ابدأ الدورة

لماذا TypeScript هو الخيار الأفضل لروبوتات المحادثة؟

\n\n

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

\n\n

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

\n\n

من أين نبدأ: إعداد البيئة

\n\n

قبل أن نتعمق في الكود، دعنا نجهز بيئة العمل. سنحتاج إلى Node.js (الإصدار 16 أو أعلى) ومدير الحزم npm أو yarn.

\n\n

الخطوة 1: تهيئة المشروع

\n\n
mkdir my-chat-bot\ncd my-chat-bot\nnpm init -y\n
\n\n

الخطوة 2: تثبيت التبعيات

\n\n

للعمل مع روبوتات المحادثة، سنستخدم المكتبة الشهيرة telegraf (لتطبيق تيليجرام) و discord.js (لتطبيق ديسكورد). لكن في هذا الدليل سنركز على النهج العام.

\n\n
npm install typescript @types/node telegraf dotenv\nnpx tsc --init\n
\n\n

يجب تعديل ملف tsconfig.json قليلاً: قم بتفعيل strict: true وحدد outDir: "./dist". هذا سيجعل الكود أكثر أمانًا.

\n\n

هيكل المشروع لروبوتات المحادثة باستخدام TypeScript

\n\n

الهندسة الجيدة هي مفتاح النجاح. إليك كيف أوصي بتنظيم الملفات:

\n\n
src/\n├── bot/\n│   ├── index.ts          # نقطة الدخول\n│   ├── handlers/         # معالجات الأوامر\n│   ├── middleware/        # المعالجات الوسيطة\n│   └── types/            # الأنواع والواجهات\n├── config/\n│   └── index.ts          # الإعدادات\n└── utils/\n    └── logger.ts         # التسجيل\n
\n\n

كتابة أول روبوت محادثة باستخدام TypeScript

\n\n

لنقم بإنشاء بوت بسيط لتطبيق تيليجرام، يستجيب للأمر /start والرسائل الصدى.

\n\n

الملف: src/config/index.ts

\n\n
import dotenv from 'dotenv';\ndotenv.config();\n\nexport const config = {\n  BOT_TOKEN: process.env.BOT_TOKEN || '',\n  PORT: parseInt(process.env.PORT || '3000')\n};\n
\n\n

الملف: src/bot/index.ts

\n\n
import { Telegraf } from 'telegraf';\nimport { config } from '../config';\nimport { startHandler } from './handlers/start';\nimport { echoHandler } from './handlers/echo';\n\nconst bot = new Telegraf(config.BOT_TOKEN);\n\n// تسجيل المعالجات\nbot.start(startHandler);\nbot.on('text', echoHandler);\n\n// تشغيل البوت\nbot.launch()\n  .then(() => console.log('تم تشغيل البوت!'))\n  .catch((err) => console.error('خطأ في التشغيل:', err));\n\n// إيقاف تشغيل آمن\nprocess.once('SIGINT', () => bot.stop('SIGINT'));\nprocess.once('SIGTERM', () => bot.stop('SIGTERM'));\n
\n\n

الملف: src/bot/handlers/start.ts

\n\n
import { Context } from 'telegraf';\n\nexport const startHandler = async (ctx: Context) => {\n  const userName = ctx.from?.first_name || 'صديق';\n  await ctx.reply(`مرحبًا، ${userName}! أنا بوت باستخدام TypeScript. اكتب لي شيئًا.`);\n};\n
\n\n

الملف: src/bot/handlers/echo.ts

\n\n
import { Context } from 'telegraf';\n\nexport const echoHandler = async (ctx: Context) => {\n  const message = ctx.message?.text || '';\n  await ctx.reply(`لقد كتبت: "${message}". رائع!`);\n};\n
\n\n

لاحظ التصنيف: Context من مكتبة telegraf مصنف بالكامل. هذا يعني أن بيئة التطوير المتكاملة (IDE) ستقترح عليك جميع الطرق والخصائص المتاحة. روبوتات المحادثة باستخدام Ty

المدونات

توصيات الكتب