0Pricing
Dart Academy · Lección

Los tipos dynamic y Object

Comprender los tipos superiores de Dart y cuándo encajan.

Los tipos dynamic y Object es una lección gratuita de Dart Academy en CoddyKit. Esta es la lección 4 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.

Dart también tiene tipos superiores

A veces necesita una variable que pueda contener cualquier valor. Dart ofrece dos tipos superiores de este tipo: Object y dynamic.

Object contiene cualquier valor de forma segura

Un Object puede almacenar cualquier valor que no sea null, pero Dart sigue comprobando cada llamada a un método según el tipo Object.

Object thing = 42;
thing = "now text";

Object restringe los métodos

Con Object, solo tiene acceso a los métodos que comparten todos los valores, como toString. Debe hacer una conversión antes de usar un comportamiento específico del tipo.

Object o = "hi";
// o.toUpperCase(); // error

dynamic desactiva las comprobaciones

Una variable dynamic también puede contener cualquier valor, pero desactiva las comprobaciones en tiempo de compilación. Los errores solo aparecen durante la ejecución.

dynamic d = "hi";
d.toUpperCase(); // allowed

dynamic puede fallar tarde

Como las comprobaciones están desactivadas, una llamada incorrecta sobre un dynamic se compila sin problemas, pero puede lanzar una excepción durante la ejecución. La comodidad tiene un coste.

dynamic d = 5;
d.toUpperCase(); // runtime error

Object es más seguro que dynamic

Prefiera Object cuando realmente necesite cualquier valor. Mantendrá la seguridad de tipos y permitirá que el compilador proteja sus llamadas.

La cuestión de Object frente a Object

Un Object simple excluye null. Si un valor podría ser null, use la forma anulable Object para permitir también null.

Object? maybe = null;

Convertir de nuevo a un tipo

Extraiga un tipo real de un Object mediante la conversión as y, después, llame a sus métodos con todas las comprobaciones restablecidas.

Object o = "hi";
var up = (o as String).toUpperCase();

Por qué sigue existiendo dynamic

dynamic resulta útil al interactuar con datos sin tipar, como un JSON con una estructura flexible, cuando no se conoce la estructura de antemano.

Evite dynamic por defecto

Recurrir a dynamic suele ocultar errores hasta que los usuarios se encuentran con ellos. Use tipos específicos u Object, salvo que realmente necesite dynamic.

Elegir entre los dos

¿Necesita cualquier valor con seguridad? Elija Object. ¿Necesita omitir las comprobaciones para datos desordenados? Use dynamic, con moderación y de forma intencionada.

Comprobación rápida

¿Cuál es la diferencia fundamental entre Object y dynamic?

Resumen: dynamic y Object

Ha aprendido que Object puede contener cualquier valor con seguridad, mientras que dynamic puede contener cualquier valor, pero omite las comprobaciones. Prefiera Object o tipos específicos. 🛡️

Preguntas frecuentes

¿La lección «Los tipos dynamic y Object» es gratis?

Sí — el texto completo de «Los tipos dynamic y Object» 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 «Los tipos dynamic y Object»?

Comprender los tipos superiores de Dart y cuándo encajan. 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 4 de 4.

¿Cuánto tiempo toma la lección «Los tipos dynamic y Object»?

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

  1. Explicación de var, final y const
  2. Los tipos básicos: int, double, String y bool
  3. Inferencia de tipos frente a tipos explícitos
  4. Los tipos dynamic y Object
← Volver a Dart Academy