Descripción
Desarrollo de un minigestor de tareas en TypeScript con funcionalidades CRUD, filtrado y persistencia local.
- Crea la estructura inicial del proyecto con los siguientes archivos:
models/Task.ts
: Define la interfazITask
y la claseTask
services/TaskManager.ts
: Implementa la clase principal que gestionará las operacionesservices/StorageService.ts
: Servicio para la persistencia de datosutils/validators.ts
: Funciones de validaciónindex.ts
: Punto de entrada para probar la aplicación
- Define la interfaz
ITask
en el archivomodels/Task.ts
con las siguientes propiedades:
id
: string (identificador único)title
: string (obligatorio)description
: string (opcional)dueDate
: Date (opcional)priority
: enum (Low
,Medium
,High
)status
: enum (Pending
,InProgress
,Completed
)createdAt
: Date (automático)updatedAt
: Date (automático)
-
Implementa la clase
Task
que implemente la interfazITask
con un constructor que valide los datos de entrada y genere un ID único para cada tarea. -
Crea el servicio de almacenamiento
StorageService
con métodos para:
- Guardar datos en localStorage
- Recuperar datos de localStorage
- Implementa métodos genéricos usando tipos genéricos de TypeScript
- Desarrolla la clase
TaskManager
con los siguientes métodos:
addTask(task: Partial<ITask>): Task
: Crea una nueva tareagetTasks(): Task[]
: Obtiene todas las tareasgetTaskById(id: string): Task | undefined
: Busca una tarea por IDupdateTask(id: string, data: Partial<ITask>): Task
: Actualiza una tarea existentedeleteTask(id: string): boolean
: Elimina una tareafilterTasks(criteria: {status?: TaskStatus, priority?: TaskPriority}): Task[]
: Filtra tareas por criterios
- Implementa validaciones en el archivo
utils/validators.ts
para:
- Verificar que el título no esté vacío
- Validar que la fecha límite sea posterior a la fecha actual
- Comprobar que los valores de prioridad y estado sean válidos
- Añade manejo de errores personalizado creando una clase
TaskError
que extienda deError
y úsala en los métodos del gestor para manejar casos como:
- Tarea no encontrada
- Datos inválidos
- Errores de almacenamiento
-
Implementa la persistencia de datos en
TaskManager
utilizando elStorageService
para guardar y recuperar las tareas automáticamente.Guarda tu progreso
Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.
Más de 25.000 desarrolladores ya confían en CertiDevs
-
En el archivo
index.ts
, crea un ejemplo de uso que demuestre todas las funcionalidades implementadas: crear varias tareas, actualizarlas, eliminar alguna, y mostrar resultados de filtrado. -
Mejora la implementación añadiendo métodos para estadísticas como:
- Número de tareas por estado
- Tareas próximas a vencer (en los próximos 3 días)
- Tareas retrasadas (fecha límite pasada)
Solución al ejercicio de programación en TypeScript
¡Desbloquea la solución completa!
Completa el ejercicio de programación en TypeScript para acceder a la solución paso a paso, explicaciones detalladas y mejores prácticas.
Practica con ejercicios de programación en TypeScript
Mejora tus habilidades con cientos de ejercicios de práctica, recibe retroalimentación instantánea y obtén tu certificación cuando estés listo.
Asistente de IA
Aprende de tus errores
Progreso
Mide tu avance
Certificación
Valida tus habilidades
Únete a miles de desarrolladores mejorando sus habilidades en TypeScript