Automação de tarefas em TypeScript: como parar de fazer trabalho chato manualmente

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Por que TypeScript é a linguagem ideal para automação

Todo desenvolvedor pelo menos uma vez na vida passou horas renomeando manualmente 200 arquivos, coletando dados de dezenas de páginas ou convertendo JSON para o formato desejado. A rotina mata a produtividade e a motivação. Mas há uma boa notícia: automação em TypeScript resolve esses problemas de forma rápida e elegante.

TypeScript não é apenas um superset do JavaScript. É tipagem forte, código legível e um ecossistema Node.js poderoso. Se você programa em Python, mas busca uma alternativa para automação, ou já trabalha com TS e quer extrair o máximo dele, este artigo é para você. Vamos abordar casos reais: desde parsing de páginas web até criação de utilitários CLI e agendadores de tarefas.



Por onde começar: configuração do ambiente

Antes de escrever scripts TypeScript, é preciso preparar o ambiente. Certifique-se de ter Node.js (versão 18+) e npm instalados.

# Instalação global do TypeScriptnpm install -g typescript

# Inicialização do projetomkdir auto-ts && cd auto-tsnpm init -ynpm install typescript @types/node ts-node --save-dev

Crie o arquivo tsconfig.json com configurações básicas:

{  "compilerOptions": {    "target": "ES2020",    "module": "commonjs",    "outDir": "./dist",    "rootDir": "./src",    "strict": true,    "esModuleInterop": true  },  "include": ["src/**/*"]}

Agora você pode escrever scripts na pasta src e executá-los com ts-node src/script.ts. Esta é a base para qualquer automação de tarefas ts.



Caso 1: Parsing automático de páginas web

Imagine: você precisa coletar títulos de notícias da página inicial de um site de notícias. Copiar e colar manualmente é coisa do passado. Vamos escrever um parser em TypeScript usando cheerio e axios.

npm install axios cheerio

Criaremos o arquivo src/parser.ts:

import axios from 'axios';import * as cheerio from 'cheerio';

interface NewsItem { title: string; link: string;}

async function parseNews(url: string): Promise<NewsItem[]> { const { data } = await axios.get(url); const $ = cheerio.load(data); const news: NewsItem[] = [];

$('h2.news-title a').each((i, el) => { news.push({ title: $(el).text().trim(), link: $(el).attr('href') || '', }); });

return news;}

(async () => { const items = await parseNews('https://example-news-site.com'); console.log(`Encontradas ${items.length} notícias:`); items.forEach(item => console.log(`- ${item.title}`));})();

Este parsing em TypeScript pode ser facilmente expandido: adicionar gravação em CSV, envio para Telegram ou salvamento em banco de dados. A tipagem NewsItem torna o código confiável e compreensível.



Caso 2: Processamento em lote de arquivos

Suponha que você tenha uma pasta com cem arquivos CSV que precisam ser mesclados em um único, removendo duplicatas. O trabalho manual levaria um dia. A automação em TypeScript resolve em segundos.

npm install fs-extra papaparse
import * as fs from 'fs-extra';import * as path from 'path';import Papa from 'papaparse';

interface Row { [key: string]: string;}

async function mergeCSV(inputDir: string, outputFile: string): Promise<void> { const files = (await fs.readdir(inputDir)).filter(f => f.endsWith('.csv')); const allRows: Row[] = []; const seen = new Set<string>();

for (const file of files) { const content = await fs.readFile(path.join(inputDir, file), 'utf-8'); const parsed = Papa.parse<Row>(content, { header: true }); for (const row of parsed.data) { const key = JSON.stringify(row); if (!seen.has(key)) { seen.add(key); allRows.push(row);

Blogs

Book Recommendations