Introduction : pourquoi TypeScript plutôt que Python ?
\n\nBonjour, développeur ! Si tu lis ceci sur PythonLib, tu es probablement surpris : "Pourquoi un article sur TypeScript sur un site dédié à Python ?". La réponse est simple : le monde de l'IT ne connaît pas de frontières, et un bon développeur sait sortir du cadre d'un seul langage. TypeScript n'est pas simplement un "sur-ensemble de JavaScript", c'est un outil puissant pour créer des applications fiables, évolutives et prévisibles. Et les bots Telegram sont un terrain de jeu idéal pour l'essayer.
\n\nImagine : tu écris du code, et l'IDE te signale les erreurs à l'avance, les types de données empêchent les plantages à l'exécution, et l'autocomplétion fonctionne comme une horloge suisse. Ce n'est pas de la magie, c'est TypeScript. Dans ce guide, nous allons créer un bot Telegram complet en TypeScript de zéro : de l'enregistrement dans BotFather au déploiement. Tu apprendras à configurer le projet, à gérer les commandes, à envoyer des messages et à travailler avec des API externes.
\n\nPrêt ? Alors c'est parti !
\n\nPourquoi choisir TypeScript pour un bot Telegram
\n\nAvant de plonger dans le code, voyons pourquoi il est intéressant d'écrire un bot en TypeScript plutôt qu'en Python, qui semble être le langage "naturel" pour ce genre de tâches.
\n\n- \n
- Le typage est ton ami. Quand un projet compte 10+ commandes et 20 gestionnaires, TypeScript évite les erreurs stupides comme passer une chaîne de caractères à la place d'un nombre. \n
- Syntaxe moderne. Async/await, déstructuration, modules – tout cela rend le code plus propre et plus lisible. \n
- Écosystème Node.js. Une immense bibliothèque de paquets, y compris Telegraf (le meilleur framework pour les bots). \n
- Performances. Node.js est une plateforme orientée événements, idéale pour les chatbots à forte charge. \n
D'ailleurs, en parlant de Telegraf : c'est un framework conçu pour TypeScript qui rend le travail avec l'API Telegram Bot extrêmement simple. C'est celui que nous allons utiliser.
\n\nPréparation : ce qu'il faut installer
\n\nPour commencer, tu auras besoin de :
\n\n# Assure-toi que Node.js (version 18+) et npm sont installés\nnode -v\nnpm -v\n\n# Crée un dossier pour le projet\nmkdir telegram-bot-ts\ncd telegram-bot-ts\n\n# Initialise le projet\nnpm init -y\n\nMaintenant, installons les dépendances :
\n\nnpm install telegraf dotenv\nnpm install -D typescript @types/node ts-node nodemon\n\nVoyons ce que nous avons installé :
\n- \n
- telegraf — le framework principal pour le bot. \n
- dotenv — pour stocker le token dans un fichier .env (la sécurité avant tout). \n
- typescript, @types/node, ts-node — pour la compilation et l'exécution du TS. \n
- nodemon — pour le redémarrage automatique en cas de modifications. \n
Crée le fichier tsconfig.json :
{\n "compilerOptions": {\n "target": "ES2020",\n "module": "commonjs",\n "strict": true,\n "esModuleInterop": true,\n "skipLibCheck": true,\n "forceConsistentCasingInFileNames": true,\n "outDir": "./dist"\n },\n "include": ["src/**/*"],\n "exclude": ["node_modules"]\n}\n\nEt le fichier .env (n'oublie pas de l'ajouter à .gitignore !) :
BOT_TOKEN=ton_token_de_BotFather\n\nEnregistrement du bot : découverte de BotFather
\n\nC'est l'étape la plus simple. Ouvre Telegram, cherche @BotFather et envoie la commande /newbot. Suis les instructions :
- \n
- Entre le nom du bot (par exemple, "Mon Assistant Intelligent"). \n
- Entre un nom d'utilisateur (doit se terminer par
bot, par exemplemy_smart_helper_bot). \n - Copie le token obtenu et colle-le dans
.env. \n
Voilà ! Tu as maintenant la clé de l'API Telegram.
\n\nStructure du projet et premier lancement
\n\nCrée un dossier src et, à l'intérieur, un fichier index.ts :
// src/index.ts\nimport { Telegraf } from 'telegraf';\nimport { mess