Introdução: por que TypeScript e não Python?
\n\nOlá, desenvolvedor! Se você está lendo isso no PythonLib, provavelmente está surpreso: "Por que um artigo sobre TypeScript em um site sobre Python?". A resposta é simples: o mundo de TI não tolera fronteiras, e um bom desenvolvedor sabe sair da caixa de uma única linguagem. TypeScript não é apenas um "superset do JavaScript", é uma ferramenta poderosa para criar aplicações robustas, escaláveis e previsíveis. E os bots do Telegram são o ambiente perfeito para experimentá-lo.
\n\nImagine: você escreve código, e a IDE destaca erros antecipadamente, os tipos de dados evitam falhas em tempo de execução, e o autocompletar funciona como um relógio suíço. Isso não é mágica — é TypeScript. Neste guia, criaremos um bot do Telegram completo em TypeScript do zero: desde o registro no BotFather até o deploy. Você aprenderá como configurar o projeto, processar comandos, enviar mensagens e trabalhar com APIs externas.
\n\nPronto? Então vamos nessa!
\n\nPor que escolher TypeScript para o bot do Telegram
\n\nAntes de mergulhar no código, vamos entender por que vale a pena escrever um bot em TypeScript, em vez de Python, que, aparentemente, é a linguagem "nativa" para essas tarefas.
\n\n- \n
- Tipagem é sua amiga. Quando o projeto tem 10+ comandos e 20 handlers, o TypeScript evita erros bobos como passar uma string em vez de um número. \n
- Sintaxe moderna. Async/await, desestruturação, módulos — tudo isso torna o código mais limpo e legível. \n
- Ecossistema Node.js. Uma enorme quantidade de bibliotecas, incluindo Telegraf (o melhor framework para bots). \n
- Desempenho. Node.js é uma plataforma orientada a eventos, ideal para chatbots com alta carga. \n
A propósito, sobre o Telegraf: é um framework TypeScript-first que torna o trabalho com a Telegram Bot API extremamente simples. Usaremos exatamente ele.
\n\nPreparação: o que instalar
\n\nPara começar, você precisará de:
\n\n# Certifique-se de ter Node.js (versão 18+) e npm instalados\nnode -v\nnpm -v\n\n# Crie a pasta do projeto\nmkdir telegram-bot-ts\ncd telegram-bot-ts\n\n# Inicialize o projeto\nnpm init -y\n\nAgora instale as dependências:
\n\nnpm install telegraf dotenv\nnpm install -D typescript @types/node ts-node nodemon\n\nVamos entender o que instalamos:
\n- \n
- telegraf — o framework principal para o bot. \n
- dotenv — para armazenar o token em um arquivo .env (segurança em primeiro lugar). \n
- typescript, @types/node, ts-node — para compilar e executar TS. \n
- nodemon — para reinicialização automática em caso de alterações. \n
Crie o arquivo 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\nE o arquivo .env (não esqueça de adicioná-lo ao .gitignore!):
BOT_TOKEN=seu_token_do_BotFather\n\nRegistro do bot: conhecendo o BotFather
\n\nEsta é a etapa mais simples. Abra o Telegram, encontre @BotFather e envie o comando /newbot. Siga as instruções:
- \n
- Digite o nome do bot (por exemplo, "Meu Assistente Inteligente"). \n
- Digite o username (deve terminar com
bot, por exemplomeu_assistente_inteligente_bot). \n - Copie o token recebido e cole no
.env. \n
Pronto! Agora você tem a chave para a API do Telegram.
\n\nEstrutura do projeto e primeira execução
\n\nCrie a pasta src e dentro dela o arquivo index.ts:
// src/index.ts\nimport { Telegraf } from 'telegraf';\nimport { mess