Ejercicio de programación con TypeScript: Proyecto calculadora gastos

Proyecto
Puntuación
1h 30m

Desarrolla una calculadora de gastos con TypeScript para registrar, categorizar y analizar gastos personales con persistencia local.

  1. Crea la estructura básica del proyecto con los archivos necesarios: index.ts, models.ts, storage.ts y calculator.ts. Define en models.ts las interfaces para Expense (con propiedades como id, amount, category, date y description) y Category (con propiedades como id y name).

  2. Implementa en storage.ts una clase StorageManager que se encargue de guardar y recuperar datos del localStorage. Esta clase debe tener métodos para guardar gastos, recuperarlos, y eliminarlos.

  3. Desarrolla en calculator.ts una clase ExpenseCalculator con métodos para calcular el total de gastos, el total por categoría, el gasto promedio y el gasto máximo. Utiliza tipos genéricos donde sea apropiado.

  4. Crea un sistema de filtrado en la clase ExpenseCalculator que permita filtrar gastos por rango de fechas y por categoría, asegurándote de manejar correctamente los tipos de datos.

  5. Implementa en index.ts la lógica principal que conecte los componentes anteriores. Crea funciones para añadir gastos, mostrar estadísticas y filtrar resultados.

  6. Añade validaciones de datos utilizando tipos personalizados o uniones de tipos para garantizar que los datos ingresados sean correctos (por ejemplo, que el monto sea un número positivo).

  7. Implementa un sistema de categorías predefinidas y personalizables, utilizando enums de TypeScript para las categorías base.

  8. Desarrolla funcionalidad para exportar los datos de gastos en formato JSON utilizando tipos específicos para el formato de exportación.

Empezar ejercicio de programación

Más ejercicios de programación con TypeScript

Evalúa tus conocimientos en TypeScript con más ejercicios de programación de tipo Test, Puzzle, Código y Proyecto con VSCode.

Tecnologías de este ejercicio de programación

Entornos de desarrollo para este ejercicio

Image

Visual Studio Code

Image

GitHub