Executando e Evoluindo o Projeto
Execute o rastreador de gastos e descubra como evoluí-lo com novos desafios.
Com os três arquivos implementados, é hora de rodar o projeto e ver o resultado.
Executando
Na raiz do projeto, execute:
npm startA saída no terminal será algo assim:
✓ "Almoço no restaurante" — R$ 45.50 adicionado.
✓ "Passagem de metrô" — R$ 4.40 adicionado.
✓ "Cinema com amigos" — R$ 32.00 adicionado.
✓ "Supermercado semanal" — R$ 187.30 adicionado.
✓ "Consulta médica" — R$ 250.00 adicionado.
✓ "Uber para o trabalho" — R$ 23.70 adicionado.
=== Todos os Gastos ===
┌─────────┬────┬────────────────────────┬────────────┬──────────────┬────────────┐
│ (index) │ ID │ Descrição │ Valor (R$) │ Categoria │ Data │
├─────────┼────┼────────────────────────┼────────────┼──────────────┼────────────┤
│ 0 │ 1 │ 'Almoço no restaurante'│ '45.50' │ 'alimentação'│ 15/06/2026 │
│ 1 │ 2 │ 'Passagem de metrô' │ '4.40' │ 'transporte' │ 15/06/2026 │
│ 2 │ 3 │ 'Cinema com amigos' │ '32.00' │ 'lazer' │ 15/06/2026 │
│ 3 │ 4 │ 'Supermercado semanal' │ '187.30' │ 'alimentação'│ 15/06/2026 │
│ 4 │ 5 │ 'Consulta médica' │ '250.00' │ 'saúde' │ 15/06/2026 │
│ 5 │ 6 │ 'Uber para o trabalho' │ '23.70' │ 'transporte' │ 15/06/2026 │
└─────────┴────┴────────────────────────┴────────────┴──────────────┴────────────┘
=== Resumo por Categoria ===
┌─────────┬──────────────┬────────────┐
│ (index) │ Categoria │ Total (R$) │
├─────────┼──────────────┼────────────┤
│ 0 │ 'alimentação'│ '232.80' │
│ 1 │ 'transporte' │ '28.10' │
│ 2 │ 'lazer' │ '32.00' │
│ 3 │ 'saúde' │ '250.00' │
└─────────┴──────────────┴────────────┘
Total gasto: R$ 542.90
Gastos com alimentação: 2 registro(s)
Erro capturado: O valor do gasto deve ser maior que zero.Parabéns — você construiu um projeto TypeScript completo, com módulos, classes, tipagem estrita e tratamento de erros.
Revisando o que você usou
Cada conceito do curso aparece neste projeto:
| Conceito | Onde aparece |
|---|---|
| Interfaces e union types | Gasto e Categoria em tipos.ts |
| Classes e encapsulamento | RastreadorDeGastos com propriedades private |
| Módulos | import/export entre os três arquivos |
| Array methods | push, filter, map, reduce, forEach |
| Tratamento de erros | throw em adicionarGasto, try/catch em index.ts |
| TypeScript strictness | O compilador impede categorias inválidas em tempo de compilação |
Desafios para evoluir
Este projeto tem bastante espaço para crescer. Cada desafio abaixo é uma funcionalidade real que tornaria o projeto mais valioso no portfólio.
Desafio 1: Definir um orçamento mensal
Adicione um método definirOrcamento(valor: number): void e um método verificarOrcamento(): void que exibe quanto do orçamento já foi usado e quanto resta.
Desafio 2: Gasto mais caro por categoria
Crie um método gastoDominantePorCategoria(): void que, para cada categoria com gastos, exibe o item de maior valor. Use Math.max e filter.
Desafio 3: Persistência em arquivo
Atualmente os dados são perdidos quando o programa termina. Adicione:
salvarGastos(): converte o array para JSON e grava emgastos.jsonusando o módulofsdo Node.jscarregarGastos(): lê o arquivo na inicialização da classe e restaura os dados
Este é o desafio mais complexo, mas torna a aplicação genuinamente útil.
Desafio 4: Remover um gasto
Implemente removerGasto(id: number): void que encontra o gasto pelo ID e o remove do array. Use filter — o mesmo padrão que você viu no curso.
Desafio 5 (aberto): Torne-o seu
Adicione algo que faça sentido para você — metas por categoria, alertas de gastos excessivos, exportação para CSV, ou uma categoria personalizada. Esse tipo de personalização é o que faz um projeto de portfólio se destacar.
Colocando no portfólio
Para publicar este projeto no GitHub:
- Inicie o repositório Git dentro da pasta do projeto:
git init git add . git commit -m "feat: rastreador de gastos pessoais em TypeScript" - Crie um repositório no GitHub e faça o push
- Escreva um
README.mddescrevendo o que o projeto faz, como rodar e quais conceitos ele demonstra
Um projeto bem documentado conta mais do que dez projetos sem descrição.
Conclusão do projeto
Este rastreador de gastos demonstra — de forma concreta e verificável — que você sabe:
- Modelar dados do mundo real com TypeScript
- Organizar código em módulos com responsabilidades distintas
- Manipular arrays com os métodos mais usados no dia a dia
- Lidar com erros de forma controlada
De agora em diante, é só evoluir.