Tipos primitivos, anotaciones e inferencia inicial

Domina string, number, boolean y el equilibrio entre inferencia y anotación explícita.

Los tipos primitivos parecen básicos, pero son la base de todas las decisiones de modelado que harás después.

Dominar cuándo confiar en inferencia y cuándo anotar explícitamente evita código ruidoso y errores de interpretación.

El objetivo no es escribir tipos por escribir, sino dejar claro el contrato de cada dato desde su origen.

Si esta capa está bien resuelta, uniones, generics y utility types se vuelven herramientas naturales en lugar de trucos.

  • TypeScript infiere muy bien, pero no siempre adivina intención de negocio.
  • Usa inferencia en variables locales de vida corta: reduce ruido y mantiene legibilidad.
  • Anota explícitamente en fronteras públicas: parámetros de funciones exportadas, retornos críticos y estructuras compartidas.
  • Cuando un valor puede ampliarse con el tiempo, una anotación explícita evita que el tipo quede accidentalmente demasiado estrecho.
  • Inferencia para implementación local.

Inferencia vs anotación explícita

TypeScript infiere muy bien, pero no siempre adivina intención de negocio.

Usa inferencia en variables locales de vida corta: reduce ruido y mantiene legibilidad.

Anota explícitamente en fronteras públicas: parámetros de funciones exportadas, retornos críticos y estructuras compartidas.

Cuando un valor puede ampliarse con el tiempo, una anotación explícita evita que el tipo quede accidentalmente demasiado estrecho.

  • Inferencia para implementación local.
  • Anotación para contratos públicos.
  • Consistencia para reducir deuda técnica.

Manejo correcto de null y undefined

Gran parte de los errores reales viene de valores ausentes mal modelados.

Con strictNullChecks, TypeScript te obliga a pensar explícitamente los estados vacíos. Eso mejora diseño, no solo seguridad.

En lugar de propagar undefined por todo el flujo, encapsula casos opcionales en funciones pequeñas con retorno claro.

Diferencia datos opcionales de datos pendientes de carga: modelar ambos como "tal vez undefined" crea ambigüedad.

Widening y literal types en datos simples

Un string genérico y un literal exacto no comunican lo mismo al compilador.

Si un valor representa una opción cerrada (por ejemplo estado de pago), conviene conservarlo como literal en vez de abrirlo a string.

Entender cuándo TypeScript ensancha tipos automáticamente (widening) evita bugs sutiles en validaciones y comparaciones.

Este criterio te prepara para modelar enums implícitos con uniones de literales en lecciones posteriores.

TypeScript
02

Tipos primitivos, anotaciones e inferencia inicial

Domina string, number, boolean y el equilibrio entre inferencia y anotación explícita.

Código del tema: tipos básicos y legibilidad

📘 Teoría

Inferencia vs anotación explícita

TypeScript infiere muy bien, pero no siempre adivina intención de negocio.

Usa inferencia en variables locales de vida corta: reduce ruido y mantiene legibilidad.

Anota explícitamente en fronteras públicas: parámetros de funciones exportadas, retornos críticos y estructuras compartidas.

Cuando un valor puede ampliarse con el tiempo, una anotación explícita evita que el tipo quede accidentalmente demasiado estrecho.

  • Inferencia para implementación local.
  • Anotación para contratos públicos.
  • Consistencia para reducir deuda técnica.

Manejo correcto de null y undefined

Gran parte de los errores reales viene de valores ausentes mal modelados.

1

Con strictNullChecks, TypeScript te obliga a pensar explícitamente los estados vacíos. Eso mejora diseño, no solo seguridad.

2

En lugar de propagar undefined por todo el flujo, encapsula casos opcionales en funciones pequeñas con retorno claro.

3

Diferencia datos opcionales de datos pendientes de carga: modelar ambos como "tal vez undefined" crea ambigüedad.

Widening y literal types en datos simples

Un string genérico y un literal exacto no comunican lo mismo al compilador.

1

Si un valor representa una opción cerrada (por ejemplo estado de pago), conviene conservarlo como literal en vez de abrirlo a string.

2

Entender cuándo TypeScript ensancha tipos automáticamente (widening) evita bugs sutiles en validaciones y comparaciones.

3

Este criterio te prepara para modelar enums implícitos con uniones de literales en lecciones posteriores.

🧪 Aprende probando

Ejemplo Ejemplo guiado Lee, ejecuta y modifica para ver cómo cambia el comportamiento al ajustar tipos.
Ejemplo Demo interactiva Prueba una mini interfaz para visualizar decisiones de tipado.

🏁 Retos

Reto Reto práctico Completa el ejercicio aplicando lo visto en esta sesión.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre TypeScript.

Test de TypeScript

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros. culTest

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com