Conceptos

TypeScript

Superset tipado de JavaScript que añade tipos estáticos opcionales, mejorando la productividad del desarrollador, la detección de errores y la mantenibilidad del código.

seed#typescript#javascript#types#static-analysis#tooling#dx

¿Qué es?

TypeScript es un superset de JavaScript que añade tipos estáticos opcionales. Todo JavaScript válido es TypeScript válido, pero TypeScript permite declarar tipos que el compilador verifica antes de ejecutar, atrapando errores en desarrollo en lugar de producción.

¿Por qué TypeScript?

  • Errores detectados en compilación, no en runtime
  • Autocompletado inteligente en el IDE
  • Refactoring seguro a escala
  • Documentación implícita en los tipos
  • Estándar de facto para proyectos JavaScript serios

Características clave

  • Interfaces y types: definir formas de datos
  • Generics: tipos parametrizados reutilizables
  • Union types: string | number
  • Type inference: el compilador deduce tipos automáticamente
  • Strict mode: máxima seguridad de tipos

TypeScript en el ecosistema

  • React: JSX tipado, props tipados
  • Next.js: soporte nativo
  • AWS CDK: infraestructura tipada
  • Node.js: backend tipado

Configuración de strict

El modo estricto habilita todas las verificaciones de tipo. Es la configuración recomendada para proyectos nuevos:

{
  "compilerOptions": {
    "strict": true,
    "target": "ES2022",
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    "esModuleInterop": true,
    "skipLibCheck": true,
    "outDir": "dist"
  }
}

Las flags individuales que strict activa:

FlagQué previene
strictNullChecksAcceso a null/undefined sin verificar
noImplicitAnyVariables sin tipo explícito ni inferido
strictFunctionTypesParámetros de función contravariantes incorrectos
strictPropertyInitializationPropiedades de clase no inicializadas
noImplicitThisUso de this sin tipo conocido

Cuándo NO usar TypeScript

  • Scripts de una sola ejecución (bash o Python son más rápidos)
  • Prototipos desechables donde la velocidad de iteración importa más que la corrección
  • Proyectos donde el equipo no tiene experiencia con tipos estáticos (la curva de aprendizaje es real)

¿Por qué importa?

TypeScript convierte errores de runtime en errores de compilación. En proyectos de cualquier tamaño, el sistema de tipos actúa como documentación viva, habilita refactoring seguro y reduce la categoría de bugs más común: los errores de tipo.

Referencias

Conceptos