Chatbots en TypeScript : guide complet pour créer de zéro

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Pourquoi TypeScript est le meilleur choix pour les chatbots ?

\n\n

Quand il s'agit de créer des chatbots, de nombreux développeurs pensent immédiatement à Python ou JavaScript. Mais il existe un langage qui combine la flexibilité du typage dynamique et la sécurité de la vérification statique : c'est TypeScript. Dans ce guide pratique, nous allons voir comment créer des chatbots en TypeScript qui seront non seulement stables, mais aussi faciles à maintenir.

\n\n

TypeScript n'est pas simplement un « sur-ensemble » de JavaScript. C'est un outil complet qui permet d'écrire un code plus difficile à casser. Imaginez : vous écrivez un bot pour Telegram, et soudain votre collègue passe un nombre au lieu d'une chaîne de caractères dans une fonction. En JavaScript, vous le découvrirez à l'exécution, quand le bot plantera. En TypeScript, le compilateur vous signalera l'erreur avant même le lancement. N'est-ce pas magique ?

\n\n

Par où commencer : configuration de l'environnement

\n\n

Avant de plonger dans le code, configurons notre espace de travail. Nous aurons besoin de Node.js (version 16 ou supérieure) et d'un gestionnaire de paquets npm ou yarn.

\n\n

Étape 1 : Initialisation du projet

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

Étape 2 : Installation des dépendances

\n\n

Pour travailler avec les chatbots, nous utiliserons la bibliothèque populaire telegraf (pour Telegram) et discord.js (pour Discord). Mais dans ce guide, nous nous concentrerons sur une approche universelle.

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

Le fichier tsconfig.json doit être légèrement modifié : activez strict: true et définissez outDir: "./dist". Cela rendra le code plus sûr.

\n\n

Structure du projet pour les chatbots en TypeScript

\n\n

Une bonne architecture est la clé du succès. Voici comment je recommande d'organiser les fichiers :

\n\n
src/\n├── bot/\n│   ├── index.ts          # Point d'entrée\n│   ├── handlers/         # Gestionnaires de commandes\n│   ├── middleware/        # Middlewares\n│   └── types/            # Types et interfaces\n├── config/\n│   └── index.ts          # Configuration\n└── utils/\n    └── logger.ts         # Journalisation\n
\n\n

Écrire notre premier chatbot en TypeScript

\n\n

Créons un simple bot Telegram qui répond à la commande /start et aux messages écho.

\n\n

Fichier : 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

Fichier : 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// Enregistrement des gestionnaires\nbot.start(startHandler);\nbot.on('text', echoHandler);\n\n// Lancement du bot\nbot.launch()\n  .then(() => console.log('Bot lancé !'))\n  .catch((err) => console.error('Erreur de lancement :', err));\n\n// Arrêt gracieux\nprocess.once('SIGINT', () => bot.stop('SIGINT'));\nprocess.once('SIGTERM', () => bot.stop('SIGTERM'));\n
\n\n

Fichier : 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 || 'ami';\n  await ctx.reply(`Bonjour, ${userName} ! Je suis un bot en TypeScript. Écris-moi quelque chose.`);\n};\n
\n\n

Fichier : 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(`Vous avez écrit : "${message}". Super !`);\n};\n
\n\n

Remarquez le typage : Context de la bibliothèque telegraf est entièrement typé. Cela signifie que l'IDE vous suggérera toutes les méthodes et propriétés disponibles. Les chatbots en Ty

Blogs

Book Recommendations