Por qué los genéricos superan a dynamic
Mantener la seguridad de tipos sin perder la reutilización.
Por qué los genéricos superan a dynamic es una lección gratuita de Dart Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Dart Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Dart Academy incluye 4 lecciones en total.
El problema de la reutilización
A menudo querrá que un mismo fragmento de código funcione con muchos tipos. Escribir una versión distinta para cada tipo resulta tedioso, por eso Dart ofrece los generics. 🎯
La vía de escape dynamic
Una solución rápida es tiparlo todo como dynamic, que acepta cualquier valor. Parece flexible, pero descarta silenciosamente toda la comprobación de tipos de Dart.
dynamic x = 5;
x = 'now a String';Por qué dynamic causa problemas
Con dynamic, el compilador ya no puede detectar errores. Un error tipográfico o una llamada incorrecta pasan inadvertidos y solo provocan un fallo en tiempo de ejecución, cuando los usuarios lo ven.
dynamic name = 'Ada';
name.notAMethod();Los genéricos mantienen los tipos
Un genérico permite que una sola definición se adapte al tipo que elija, sin dejar de recordar exactamente cuál es ese tipo. Así obtiene reutilización sin perder seguridad.
Los corchetes angulares
Escriba el tipo elegido entre corchetes angulares, como List of int. Dart aplica ese tipo a cada elemento que añada.
List<int> scores = [90, 85, 100];Errores detectados a tiempo
Como el tipo se conoce, el compilador rechaza los valores incorrectos antes de que ejecute el programa. Los errores aparecen en el editor, no en producción.
List<int> scores = [90, 85];
scores.add('oops');Autocompletado del editor
Conocer el tipo real también permite un autocompletado inteligente. El editor puede sugerir solo los métodos que realmente existen para ese tipo.
Se acabaron las conversiones de tipo
Con dynamic, a menudo debe volver a convertir los valores antes de usarlos, lo que resulta engorroso y arriesgado. Los genéricos devuelven automáticamente el tipo correcto, así que las conversiones desaparecen.
List<String> names = ['Ada'];
String first = names[0];Código autodocumentado
Un tipo como Map of String to int indica de inmediato al lector qué contienen los datos. Los genéricos documentan la intención directamente en el propio tipo.
Map<String, int> ages = {'Ada': 36};La misma velocidad, más seguridad
Los genéricos son principalmente una característica de tiempo de compilación, por lo que obtiene comprobación y claridad sin ralentizar el programa durante la ejecución.
Cuándo sigue siendo adecuado dynamic
Use dynamic solo cuando el tipo sea realmente desconocido, como ocurre con JSON sin procesar. En cualquier otro caso, un genérico es la opción predeterminada más segura y clara.
Comprobación rápida
¿Por qué se suelen preferir los genéricos a dynamic?
Resumen
Ha visto que los genéricos permiten reutilizar código sin renunciar a la seguridad de tipos, a diferencia de dynamic. Detectan errores pronto, mejoran el autocompletado y documentan el código. ✅
Preguntas frecuentes
¿La lección «Por qué los genéricos superan a dynamic» es gratis?
Sí — el texto completo de «Por qué los genéricos superan a dynamic» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Dart Academy, actualiza a CoddyKit PRO. El curso de Dart Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Por qué los genéricos superan a dynamic»?
Mantener la seguridad de tipos sin perder la reutilización. Practicas Dart Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Dart Academy?
No se requiere experiencia previa. Dart Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Por qué los genéricos superan a dynamic»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Dart Academy?
Sí. Cada lección de Dart Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Por qué los genéricos superan a dynamic
- Clases y métodos genéricos
- Parámetros de tipo acotados con extends
- Colecciones genéricas en la práctica