Skip to content

Repository files navigation

Campuslands Devs TypeScript

Repositorio educativo para aprender TypeScript desde cero hasta nivel intermedio mediante ejercicios practicos, progresivos y contextualizados en intereses reales de estudiantes.

Introduccion a TypeScript

TypeScript es un superset de JavaScript que agrega tipado estatico, mejores herramientas de autocompletado y validaciones antes de ejecutar el codigo. El objetivo no es escribir mas codigo, sino detectar errores temprano y construir software mas mantenible.

JavaScript vs TypeScript

JavaScript TypeScript
Tipado dinamico en tiempo de ejecucion. Tipado estatico durante desarrollo y compilacion.
Los errores de tipos suelen aparecer al ejecutar. Muchos errores se detectan antes de ejecutar.
No requiere compilacion. Se compila a JavaScript.
Flexible para prototipos rapidos. Mas seguro para proyectos medianos y grandes.

Requisitos

  1. Instalar Node.js LTS desde https://nodejs.org.
  2. Verificar instalacion:
node --version
npm --version
  1. Instalar dependencias del repositorio:
npm install

Instalacion de TypeScript

Este repositorio incluye TypeScript como dependencia de desarrollo. Si necesitas instalarlo globalmente para practicar en otros proyectos:

npm install -g typescript
tsc --version

Como ejecutar ejercicios

Cada ejercicio contiene un index.ts. Ejecuta un ejercicio basico con:

npm run dev -- ejercicios/01-introduccion-typescript/index.ts

Ejecuta un ejercicio intermedio con:

npm run dev -- intermedio/ejercicios/01-dashboard-kd-shooter/index.ts

Como compilar TypeScript

npm run build

El comando valida el proyecto con tsc --noEmit, sin generar archivos JavaScript.

Flujo Git de Campuslands

Ramas principales:

  • main: versiones estables.
  • dev: rama principal de desarrollo.
  • Ramas personales: trabajo de estudiantes.

Ejemplos de ramas personales:

git checkout dev
git pull origin dev
git checkout -b juan-perez
git add .
git commit -m "feat: solve exercise 01"
git push -u origin juan-perez

Los estudiantes deben abrir Pull Request hacia dev. Nadie debe mezclar cambios directamente a main salvo administradores del repositorio.

Como crear Pull Requests

  1. Publica tu rama personal.
  2. En GitHub, entra al repositorio.
  3. Selecciona Compare & pull request.
  4. Base: dev.
  5. Compare: tu rama personal.
  6. Describe que ejercicios resolviste y como probaste tu codigo.
  7. Solicita revision.

Las entregas de estudiantes no deben modificar los archivos base. Cada respuesta debe ir en una carpeta personal dentro de resoluciones.

Ejemplo basico:

ejercicios/01-introduccion-typescript/resoluciones/juan-perez/index.ts

Ejemplo intermedio:

intermedio/ejercicios/01-dashboard-kd-shooter/resoluciones/juan-perez/index.ts

Buenas practicas

  • Usa nombres claros y descriptivos.
  • Mantén funciones pequenas y con una sola responsabilidad.
  • No uses any salvo justificacion tecnica.
  • Ejecuta npm run build antes de enviar PR.
  • Lee el README de cada ejercicio antes de programar.
  • No modifiques archivos dentro de respuestas/ para entregar ejercicios.
  • Escribe commits pequenos y con mensajes claros.

Convenciones de nombres

  • Variables y funciones: camelCase.
  • Tipos, interfaces, clases y enums: PascalCase.
  • Carpetas de ejercicios: numero + nombre en kebab-case.
  • Ramas personales: nombre-apellido en minusculas, sin tildes ni espacios.

Estructura del repositorio

/
├── README.md
├── CONTRIBUTING.md
├── .editorconfig
├── .gitignore
├── package.json
├── tsconfig.json
├── .vscode/
├── docs/
├── ejercicios/
├── intermedio/
└── respuestas/

Ruta de ejercicios

# Ejercicio Contexto Concepto
01 Introduccion a TypeScript Videojuegos Shooter conocer la sintaxis basica de TypeScript y ejecutar un archivo tipado
02 Tipos primitivos Motos usar string, number, boolean, null y undefined de forma segura
03 Arrays y Tuplas Equipos de futbol representar listas homogeneas y posiciones fijas con tipos
04 Interfaces Personajes RPG definir contratos para objetos con propiedades obligatorias y opcionales
05 Type Alias Catalogo de ropa crear alias reutilizables para objetos, literales y combinaciones
06 Funciones tipadas Sistema de puntuacion deportiva tipar parametros, retornos y funciones auxiliares
07 Objetos avanzados Biblioteca de peliculas usar objetos anidados, propiedades readonly, opcionales y metodos
08 Union Types Vehiculos deportivos e hiperdeportivos permitir valores controlados y discriminar variantes
09 Enums Generos musicales agrupar constantes con nombre para opciones conocidas
10 Generics Inventario de videojuegos crear funciones y estructuras reutilizables sin perder tipos
11 Clases Sistema de motocicletas encapsular estado y comportamiento con clases
12 Herencia Personajes de videojuegos MOBA reutilizar comportamiento con clases base y especializadas
13 Modulos Aplicacion de viajes separar responsabilidades usando export e import
14 Async/Await Consulta de API de peliculas trabajar con promesas, funciones asincronas y manejo de errores
15 Proyecto Final Integrador Gestor de personajes para videojuego RPG con TypeScript integrar tipos, interfaces, clases, generics, modulos y asincronia

Nivel intermedio

El nivel intermedio agrega 80 ejercicios progresivos en intermedio/. La dificultad sube por bloques:

  • 01-20: interfaces, aliases, arrays tipados, filtros, rankings y validaciones.
  • 21-40: reglas de negocio, union types, Record, Map, Set, clases y generics.
  • 41-60: fechas, estados, reportes, async/await y errores tipados.
  • 61-80: reducers, state machines, persistencia simulada y mini sistemas integradores.

Gobernanza

Las reglas completas para proteger main y dev estan documentadas en docs/github-governance.md.

About

Repositorio educativo de TypeScript para estudiantes Campuslands.

Resources

Contributing

Stars

21 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages