Introducción: ¿Por qué TypeScript y no Python?
\n\n¡Hola, desarrollador! Si estás leyendo esto en PythonLib, seguramente te sorprenderás: "¿Por qué un artículo sobre TypeScript en un recurso sobre Python?". La respuesta es simple: el mundo de la TI no tolera fronteras, y un buen desarrollador sabe salir de los límites de un solo lenguaje. TypeScript no es solo una "extensión de JavaScript", es una herramienta poderosa para crear aplicaciones robustas, escalables y predecibles. Y los bots de Telegram son el arenero perfecto para probarlo.
\n\nImagina: escribes código y el IDE te resalta los errores de antemano, los tipos de datos evitan caídas en tiempo de ejecución, y el autocompletado funciona como un reloj suizo. Esto no es magia, es TypeScript. En esta guía crearemos un bot de Telegram completo en TypeScript desde cero: desde el registro en BotFather hasta el despliegue. Aprenderás a configurar el proyecto, manejar comandos, enviar mensajes y trabajar con APIs externas.
\n\n¿Listo? ¡Entonces vamos allá!
\n\nPor qué elegir TypeScript para un bot de Telegram
\n\nAntes de sumergirnos en el código, analicemos por qué vale la pena escribir un bot en TypeScript en lugar de Python, que, aparentemente, es el lenguaje "nativo" para estas tareas.
\n\n- \n
- La tipificación es tu amiga. Cuando el proyecto tiene 10+ comandos y 20 manejadores, TypeScript te salva de errores tontos como pasar una cadena en lugar de un número. \n
- Sintaxis moderna. Async/await, desestructuración, módulos: todo esto hace que el código sea más limpio y legible. \n
- Ecosistema Node.js. Una enorme cantidad de librerías, incluyendo Telegraf (el mejor framework para bots). \n
- Rendimiento. Node.js es una plataforma orientada a eventos, ideal para chatbots con altas cargas de trabajo. \n
Por cierto, sobre Telegraf: es un framework TypeScript-first que hace que trabajar con la Telegram Bot API sea extremadamente simple. Usaremos precisamente este.
\n\nPreparación: qué necesitas instalar
\n\nPara empezar necesitarás:
\n\n# Asegúrate de tener instalados Node.js (versión 18+) y npm\nnode -v\nnpm -v\n\n# Crea la carpeta del proyecto\nmkdir telegram-bot-ts\ncd telegram-bot-ts\n\n# Inicializa el proyecto\nnpm init -y\n\nAhora instalemos las dependencias:
\n\nnpm install telegraf dotenv\nnpm install -D typescript @types/node ts-node nodemon\n\nAnalicemos lo que instalamos:
\n- \n
- telegraf — el framework principal para el bot. \n
- dotenv — para almacenar el token en un archivo .env (la seguridad es lo primero). \n
- typescript, @types/node, ts-node — para compilar y ejecutar TS. \n
- nodemon — para reiniciar automáticamente al hacer cambios. \n
Crea el archivo 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\nY el archivo .env (¡no olvides agregarlo a .gitignore!):
BOT_TOKEN=tu_token_de_BotFather\n\nRegistro del bot: conociendo a BotFather
\n\nEsta es la etapa más simple. Abre Telegram, busca @BotFather y envía el comando /newbot. Sigue las instrucciones:
- \n
- Ingresa el nombre del bot (por ejemplo, "Mi Asistente Inteligente"). \n
- Ingresa un username (debe terminar en
bot, por ejemplomi_asistente_inteligente_bot). \n - Copia el token obtenido y pégalo en
.env. \n
¡Listo! Ahora tienes la clave para la API de Telegram.
\n\nEstructura del proyecto y primer inicio
\n\nCrea la carpeta src y dentro de ella el archivo index.ts:
// src/index.ts\nimport { Telegraf } from 'telegraf';\nimport { mess