Miembros de extensión estáticos y conflictos
Resolver conflictos y añadir utilidades estáticas.
Miembros de extensión estáticos y conflictos es una lección gratuita de Dart Academy en CoddyKit. Esta es la lección 3 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.
Dos helpers, el mismo nombre
Importe dos extensiones que añadan a String un método llamado parse y Dart dejará de saber cuál pretende utilizar.
Por qué ocurren los conflictos
Los miembros de una extensión no pertenecen al tipo en sí, por lo que dos métodos con el mismo nombre crean una ambigüedad que el compilador se niega a resolver por su cuenta.
Detecte el error
Cuando ocurre esto, Dart informa de una extensión ambigua y se detiene, en lugar de elegir una en silencio por usted.
"7".parse(); // error: ambiguous between two extensionsOculte una al importar
Use hide en la importación para descartar por nombre una de las extensiones en conflicto y dejar que la otra gane la llamada.
import 'b.dart' hide NumberParsing;O muestre solo una
El mecanismo opuesto es show, que importa únicamente los nombres que enumere y excluye discretamente el resto.
import 'a.dart' show NumberParsing;Llámela de forma explícita
También puede ser preciso mediante una aplicación explícita: indique el nombre de la extensión y pase el valor entre paréntesis.
NumberParsing("7").parse();Añada miembros estáticos
Las extensiones también pueden contener miembros estáticos. Estos pertenecen al nombre de la extensión, no a los valores sobre los que llama a los métodos.
extension MathX on num {
static num clampLow(num x) => x < 0 ? 0 : x;
}Acceda a los estáticos por nombre
Llame a un miembro estático mediante el nombre de la extensión, igual que a un miembro estático de una clase. El valor receptor no interviene.
print(MathX.clampLow(-3)); // 0Los estáticos necesitan un nombre
Como se accede a los miembros estáticos mediante la extensión, una extensión sin nombre no puede exponerlos. Asígnele un nombre para utilizar miembros estáticos.
Miembros frente a estáticos
Los miembros de instancia utilizan this y se apoyan en un valor; los miembros estáticos ignoran el valor y viven en la propia extensión.
Planifique para evitar conflictos
Dé a las extensiones y a sus miembros nombres claros y específicos. Un buen nombre evita la mayoría de los conflictos antes de que sea necesario usar show o hide.
Comprobación rápida
Un conflicto, una solución limpia. ¿Cuál funciona?
Resumen: estáticos y conflictos
Puede resolver los conflictos entre extensiones con show, hide o llamadas explícitas, y añadir miembros estáticos a los que se accede mediante el nombre de la extensión. 🧩
Aprende Dart con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «Miembros de extensión estáticos y conflictos» es gratis?
Sí — el texto completo de «Miembros de extensión estáticos y conflictos» 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 «Miembros de extensión estáticos y conflictos»?
Resolver conflictos y añadir utilidades estáticas. 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 3 de 4.
¿Cuánto tiempo toma la lección «Miembros de extensión estáticos y conflictos»?
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
- Escribir su primera extensión
- Extensiones sobre genéricos
- Miembros de extensión estáticos y conflictos
- Tipos de extensión para wrappers sin coste