Registro de cambios de Dart
Un registro de cambios completo para Dart.
Esta página muestra el historial completo de cambios del
Dart SDK y el lenguaje Dart, organizados por versión.
Usamos etiquetas para clasificar los cambios, como
New para características, Fixed para errores, y Breaking
para cambios incompatibles.
Algunos cambios son Language versioned,
lo que significa que solo entran en vigor cuando
actualizas la language version de tu código.
3.12
Released: 2026-05-18
Se introdujo soporte para private named parameters en parámetros de inicialización y parámetros del constructor primario. Esta característica permite que los constructores acepten parámetros nombrados que inicializan directamente campos privados. El guion bajo inicial se omite automáticamente para determinar el nombre del parámetro público en el sitio de llamada.
dart:coreReleased: 2026-05-18
La implementación de RegExp en Dart VM ahora admite spans de modificadores y grupos
de captura nombrados duplicados.
dart:js_interop
Released: 2026-05-18
Se movió isA de JSAnyUtilityExtension a NullableObjectUtilExtension
para admitir la verificación de tipos de cualquier Object?. Además, isA<JSObject>()
evalúa correctamente objetos JS que carecen de prototipos, y isA<JSAny>()
verifica de manera robusta que un valor sea un valor JS válido. Dado que
NullableObjectUtilExtension se aplica al supertipo más amplio Object?
en lugar de
JSAny?, esta migración es compatible con versiones anteriores para la mayoría del código.
Este cambio rompe el código existente solo si hiciste referencia explícita al
nombre JSAnyUtilityExtension aplicando la extensión directamente o
importándola con directivas show/hide.
dart:js_interop
Released: 2026-05-18
isA<JSExportedDartFunction>() ahora verifica si la función es una
función wrapper de JS devuelta por Function.toJS o Function.toJSCaptureThis.
dart:js_interop
Released: 2026-05-18
Se agregaron los tipos JSIterableProtocol, JSIterable, JSIteratorProtocol, JSIterator
y JSIteratorResult para modelar los protocolos de iteración de JavaScript.
JSArray y JSString ahora implementan JSIterable.
dart:js_interop
Released: 2026-05-18
Se agregaron tipos de extensión para proporcionar Iterable.toJSIterable,
JSIterable.toDartIterable, Iterator.toJSIterator y
JSIterator.toDartIterator.
Released: 2026-05-18
El nuevo lint simple_directive_paths
marca rutas import y export
innecesariamente complejas,
como rutas que contienen segmentos redundantes ./ o de retroceso
../.
La corrección rápida asociada simplifica estas rutas automáticamente.
Usa dart fix --code=simple_directive_paths (con --dry-run o
--apply) para corregir en masa las violaciones de lint existentes en tu proyecto.
Released: 2026-05-18
La regla de lint prefer_initializing_formals ahora reporta parámetros nombrados
que califican como private named parameters,
si el pubspec del paquete habilita la característica del lenguaje (por ejemplo,
sdk: ^3.12.0).
Usa dart fix --code=prefer_initializing_formals (con --dry-run o
--apply) para corregir en masa las violaciones de lint existentes.
Released: 2026-05-18
dart fix ahora admite corregir violaciones de lint avoid_final_parameters
usando dart fix --code=avoid_final_parameters (con
--dry-run o
--apply).
Released: 2026-05-18
El analizador ahora advierte cuando se hace tear-off de una función que tiene un parámetro
anotado con @mustBeConst.
Released: 2026-05-18
La regla invalid_runtime_check_with_js_interop_types ahora verifica tipos de
interoperabilidad JS dentro de cláusulas catch y te indica usar isA
para verificaciones
de tipos en su lugar.
Released: 2026-05-18
Se agregó soporte inicial para 'depuración con print' mediante nuevas secciones
en la página "Plugins" Insights (Diagnostics).
Cuando un complemento calcula diagnósticos de lint y advertencias,
el servidor de análisis ahora redirige las llamadas print y presenta los mensajes
en la sección del complemento apropiado en la página Plugins.
Released: 2026-05-18
Soporte mejorado para tipos de extensión en muchas reglas de lint existentes.
Released: 2026-05-18
Soporte mejorado para elementos con conocimiento de nulidad en reglas de lint existentes.
Released: 2026-05-18
El servidor de análisis se inicia más rápido debido al almacenamiento en caché mejorado de archivos de opciones de análisis. La aceleración exacta depende del número de archivos de opciones de análisis en tu espacio de trabajo y del número de archivos incluidos, con las mayores mejoras observadas en sistemas con acceso a disco más lento.
Released: 2026-05-18
dart pub cache repair ahora por defecto solo repara los paquetes referenciados
por el pubspec.lock de tu proyecto actual.
Para reparar todos los paquetes, usa la bandera --all.
Released: 2026-05-18
dart pub add y dart pub unpack ahora aceptan @ como alternativa a
:
para separar un nombre de paquete de su restricción de versión.
Released: 2026-05-18
Se actualizó la API del cargador de módulos de carga diferida para admitir la obtención por lotes de
módulos diferidos. El incrustador ahora usa loadDeferredModules
en lugar de
loadDeferredModule. Este nuevo callback acepta un array de nombres de módulos
en lugar de un solo nombre de módulo. Además, todas las funciones de carga de módulos
deben aceptar un callback instantiator y pasarle los resultados cargados.
Released: 2026-05-18
JSExportedDartFunction.toDart a veces devolvía incorrectamente la función
Dart original incluso si la función wrapper de JS se convertía desde una llamada a la
obsoleta allowInterop. Para ser consistente con DDC y dart2wasm,
ahora lanza una excepción si la función wrapper de JS no era un resultado de Function.toJS
o
Function.toJSCaptureThis.
3.11
dart:ioReleased: 2026-02-11
Se agregó soporte para sockets de dominio Unix (AF_UNIX) en Windows. El soporte está
restringido al subconjunto de características admitidas por el sistema operativo. Windows actualmente
no admite las siguientes características para los sockets AF_UNIX: sockets de datagramas,
datos auxiliares o direcciones de socket abstractas. Los sockets de dominio Unix se
representan en el sistema de archivos usando reparse points lo que lleva a algunas
discrepancias en el comportamiento de las APIs de dart:io: por ejemplo
File(socketPath).existsSync() devolverá true
en sistemas operativos POSIX,
pero false en Windows. Usa FileSystemEntity.typeSync()
en su lugar para obtener
comportamiento portable.
dart:js_interop
Released: 2026-02-11
Se agregó un constructor a JSSymbol, así como JSSymbol.key,
JSSymbol.description y métodos estáticos para todos los símbolos
ECMAScript conocidos.
dart:js_utilReleased: 2026-02-11
dart2wasm ya no admite dart:js_util. Cualquier código que importe
dart:js_util ya no se compilará con dart2wasm. En consecuencia, el código que
depende de package:js tampoco se compilará con dart2wasm. El nombre
dart.library.js_util ya no es una clave en entornos de compilación
dart2wasm, incluyendo en importaciones y exportaciones condicionales.
Released: 2026-02-11
Las páginas Insights (también conocidas como páginas "Analysis Server Diagnostics") ahora muestran datos sobre el "Message Scheduler."
Released: 2026-02-11
El comando "Fix all in workspace" ahora admite un indicador de progreso.
Released: 2026-02-11
El análisis mediante complementos del analizador ahora es más rápido en ejecuciones posteriores, ya que
el servidor de análisis ahora reutilizará un snapshot AOT existente del punto de entrada
del complemento. Esto ahorra una cantidad constante de tiempo al inicio de cada sesión
del IDE y ejecución de dart analyze, del orden de 10 segundos.
Released: 2026-02-11
Se hicieron varias correcciones para el método call en un objeto Function, como "ir
a definición" y autocompletado.
Released: 2026-02-11
Se hicieron varias correcciones para los parámetros error y stackTrace de
declaraciones try/catch.
Released: 2026-02-11
Se hicieron varias correcciones para resaltado de sintaxis, navegación, autocompletado de código, hovers, correcciones rápidas, asistentes, refactorización "renombrar" y "ir a importaciones."
Released: 2026-02-11
Se corrigieron varios problemas con el soporte para la sintaxis "dot shorthands" en los IDEs.
Released: 2026-02-11
Se implementaron mejoras de formato al escribir en LSP para no formatear en casos no deseados.
Released: 2026-02-11
Se agregó una nueva regla de lint: simplify_variable_pattern, que fomenta
usar la abreviatura de patrón para variables y nombres de propiedad del mismo
nombre.
Released: 2026-02-11
La regla de lint avoid_null_checks_in_equality_operators ahora está obsoleta.
Released: 2026-02-11
La regla de lint use_if_null_to_convert_nulls_to_bools ahora está obsoleta.
Released: 2026-02-11
El tiempo asíncrono del Future devuelto por deferred_prefix.loadLibrary()
ahora es consistente independientemente de si las importaciones diferidas apropiadas son admitidas en el
entorno de ejecución o no. Esto hace que el tiempo sea más consistente con dart2js
donde las cargas siempre son una operación asíncrona.
Released: 2026-02-11
Se ha agregado soporte "Glob" para espacios de trabajo pub.
Ahora para incluir todos los paquetes dentro de pkgs/ en el espacio de trabajo, simplemente escribe:
workspace:
- pkgs/*
Admitido si la restricción del Dart SDK del paquete contenedor es 3.11.0 o superior.
Released: 2026-02-11
Se agregó el nuevo comando dart pub cache gc para recuperar espacio en disco de tu caché
pub.
Funciona eliminando paquetes de tu caché pub que no son referenciados por
ninguno de tus proyectos actuales.
Released: 2026-02-11
Al ejecutar una prueba de dart pub publish con la bandera --dry-run,
ahora puedes ignorar advertencias con la bandera --ignore-warnings.
Cuando especificas esta bandera, la prueba solo saldrá con un código de salida distinto de cero si la validación del paquete tiene errores.
Released: 2026-02-11
Se agregó soporte para sockets de dominio Unix en Windows en dart:io.
También se eliminó el soporte para dart:js_util en dart2wasm, requiriendo migración a
dart:js_interop.
Released: 2026-02-11
El código que importa dart:js_util o package:js ahora resulta en un
error de compilación al compilar a WebAssembly. Invocar cualquier API de estas
bibliotecas resultará en un error de tiempo de ejecución. Los usos deben migrarse a
dart:js_interop y dart:js_interop_unsafe.
3.10
Released: 2025-11-12
Se introdujeron abreviaciones de punto para enums y otros miembros estáticos,
permitiéndote omitir el nombre del tipo cuando el contexto lo hace claro. También
mejora la inferencia de tipos para funciones generadoras sync* y async*,
eliminando null espurio de sus tipos de retorno. El analizador ahora
admite un nuevo sistema de complementos para reglas personalizadas y correcciones rápidas, y se han
agregado varios nuevos lints y asistentes. Además, la CLI de Dart se ha
separado de Dart VM en un ejecutable separado.
Released: 2025-11-12
Las funciones generadoras sync* y async* sin un retorno especificado ahora
infieren correctamente tipos de retorno como no nulos cuando no se produce ningún valor
null.
Esto podría activar nuevos diagnósticos relacionados con elementos de código
innecesarios, como un operador de acceso con conocimiento de nulidad innecesario (?.).
dart:coreReleased: 2025-11-12
Las funciones Uri.parseIPv4Address y Uri.parseIPv6Address ya no
permiten incorrectamente ceros a la izquierda en direcciones IPv4.
dart:coreReleased: 2025-11-12
La capacidad de implementar RegExp y RegExpMatch está obsoleta y se
eliminará en una versión futura.
dart:iodart:js_interop
Released: 2025-11-12
La extensión Uint16ListToJSInt16Array ha sido renombrada a
Uint16ListToJSUint16Array.
dart:js_interop
Released: 2025-11-12
La extensión JSUint16ArrayToInt16List ha sido renombrada a
JSUint16ArrayToUint16List.
dart:js_interop
Released: 2025-11-12
La función Function.toJSCaptureThis ahora resulta en verificaciones
adicionales en tiempo de compilación para coincidir con Function.toJS. Si la función no tiene un
tipo conocido estáticamente, tiene tipos no admitidos en su firma, incluye parámetros
de tipo, o tiene cualquier parámetro nombrado, la llamada resultará en un
error de tiempo de compilación.
Released: 2025-11-12
La CLI de dart y Dart VM ahora son ejecutables separados, con el ejecutable
y proceso de Dart VM puro llamado dartvm. Los programas de Dart aún deben ejecutarse
con dart run.
Released: 2025-11-12
Los subcomandos de la herramienta dart, como dart format y dart compile
ahora
ejecutan snapshots compilados AOT de las herramientas subyacentes. No debería haber
diferencia funcional fuera de las mejoras de rendimiento, pero si encuentras
incompatibilidades, por favor repórtalas.
Released: 2025-11-12
La herramienta dart ya no está disponible para plataformas IA32 ya que el Dart SDK ya
no admite IA32.
Released: 2025-11-12
Usar miembros marcados como @experimental fuera del paquete en el que son
declarados ahora resulta en una advertencia.
Released: 2025-11-12
Las reglas de lint habilitadas en archivos de opciones de análisis incluidas ahora resultan en diagnósticos de lint incompatibles cuando es apropiado.
Released: 2025-11-12
La anotación obsoleta @required de package:meta ya no está
admitida. Para marcar un parámetro como requerido, usa la palabra clave required
en su lugar.
Released: 2025-11-12
dart:js_util y package:js ya no son admitidos al compilar a
WebAssembly. Invocar cualquier API de estas bibliotecas resultará en un error
de tiempo de ejecución. Los usos deben migrarse a dart:js_interop y
dart:js_interop_unsafe.
Released: 2025-11-12
Para coincidir con los compiladores JS, dartify cuando se compila a Wasm, ahora convierte objetos
Promise de JS a objetos Future de Dart en lugar de objetos
JSValue de Dart.
3.9
Released: 2025-09-30
Esta versión de parche corrige una regresión de rendimiento en compilaciones modulares donde las llamadas estáticas están profundamente anidadas dentro de un closure.
Released: 2025-09-09
Esta versión de parche corrige un problema en Dart VM donde se podría inferir un tipo incorrecto para una variable de bucle.
Released: 2025-08-27
Esta versión de parche corrige un problema en DDC donde los getters estáticos podrían ser invocados involuntariamente durante un hot reload.
Released: 2025-08-20
Esta versión de parche corrige problemas en DevTools, compilación ARM32 y dependencias
de git usando tag_pattern.
Released: 2025-08-13
El sistema de tipos de Dart ahora asume seguridad de nulidad para
promoción de tipos, alcanzabilidad y asignación definitiva.
El servidor de análisis ahora está compilado AOT para un rendimiento mejorado.
Se agregaron nuevos lints switch_on_type y unnecessary_unawaited,
junto con una nueva anotación @awaitNotRequired.
Released: 2025-08-13
La seguridad de nulidad ahora se asume al calcular la promoción de tipos, alcanzabilidad y asignación definitiva. Como resultado, el análisis mejorado de código muerto podría causar que nuevos diagnósticos del analizador se activen en código existente que anteriormente pasó el análisis.
Released: 2025-08-13
Algunos subcomandos de la herramienta dart, como dart analyze y dart fix
ahora ejecutan snapshots compilados AOT de las herramientas subyacentes. No debería haber
diferencia funcional fuera de las mejoras de rendimiento, pero si encuentras
incompatibilidades, por favor repórtalas.
Released: 2025-08-13
El límite superior de la restricción del SDK de flutter en el paquete raíz
de tu espacio de trabajo ahora se respeta. Si tu SDK actual no cumple con el límite
especificado, dart pub get y otras acciones que recuperan dependencias fallarán.
Released: 2025-08-13
Construir un paquete de aplicación CLI con soporte experimental de activos nativos ahora
requiere usar el subcomando dart build cli y especificar el punto de entrada
de la aplicación con una nueva opción --target.
3.8
Released: 2025-07-31
Esta versión de parche corrige problemas con la pantalla Network de DevTools y Hot Restart.
Released: 2025-07-16
Esta versión de parche corrige un problema con el tamaño de los binarios compilados cruzadamente.
Released: 2025-05-28
Esta versión de parche corrige un problema en DDC con variables late siendo capturadas incorrectamente dentro de cuerpos de funciones asíncronas.
Released: 2025-05-20
Se introdujeron elementos con conocimiento de nulidad para colecciones, facilitando
agregar elementos condicionalmente basándose en nulidad. También se agregó
Iterable.withIterator, HttpClientBearerCredentials y varias mejoras
del analizador incluyendo nuevas correcciones rápidas y lints.
Released: 2025-05-20
Se agregó soporte para elementos con conocimiento de nulidad en literales de colección. Un elemento
con conocimiento de nulidad evalúa una expresión y, si el resultado no es null, inserta
el valor en la colección circundante.
dart:htmlReleased: 2025-05-20
El constructor Element.created ha sido eliminado.
dart:htmlReleased: 2025-05-20
Las clases nativas en dart:html, como HtmlElement, ya no pueden ser
extendidas.
Released: 2025-05-20
La regla de lint avoid_null_checks_in_equality_operators está obsoleta y
debe eliminarse de los archivos analysis_options.yaml.
Released: 2025-05-20
Ahora lanza un error de tiempo de ejecución cuando se hace tear-off de un constructor de fábrica redirigido y uno de sus parámetros opcionales no nulos no recibe valor. En el futuro esto probablemente será un error de tiempo de compilación.
Released: 2025-05-20
Las banderas --experiment-new-rti y --use-old-rti ya no son
admitidas.
Released: 2025-05-20
El formateador se basa en la reescritura de la versión anterior, incorporando comentarios, correcciones de errores y mejoras adicionales. Ahora automatiza de manera inteligente la colocación de comas finales, decidiendo si dividir construcciones en lugar de forzarlas. La actualización también incluye cambios de estilo para ajustar y mejorar la salida del código.
3.7
Released: 2025-04-16
Esta versión de parche corrige una regresión de rendimiento en el servidor de análisis.
Released: 2025-03-12
Esta versión de parche corrige un error en dart2wasm relacionado con funciones integradas
js-string con tipos de parámetros no nulos.
Released: 2025-02-26
Esta versión de parche corrige errores en el perfilador de red de DevTools, constructores de fábrica DDC con funciones locales genéricas, y marcado de variables comodín en el CFE.
Released: 2025-02-12
Se introdujeron variables comodín, un nuevo estilo "alto" para el formateador
dart, y se oficializaron como obsoletas las bibliotecas web más antiguas en favor de
package:web y dart:js_interop. También se implementaron numerosas mejoras
del analizador y nuevos lints.
Released: 2025-02-12
Las variables comodín ahora son admitidas. Una variable comodín es una variable
local o parámetro llamada _. Las variables comodín no son vinculantes, por lo que
pueden declararse múltiples veces sin colisiones. Por ejemplo:
Foo(_, this._, super._, void _()) {}
Released: 2025-02-12
El análisis de alcanzabilidad ahora considera si un campo es promovido de tipo a Null
usando is o as. Esto hace que el sistema de tipos sea más autoconsistente, porque
refleja el comportamiento de las variables locales promovidas. Este cambio no
se espera que haga ninguna diferencia en la práctica.
Released: 2025-02-12
Las bibliotecas dart:html, dart:indexed:db, dart:svg, dart:web_audo,
dart:web_gl y dart:js están oficialmente obsoletas. Se espera
que sean eliminadas en una versión futura. Los proyectos deben migrar para usar
package:web y dart:js_interop. Para aprender más, consulta
Migrate to
package:web.
Released: 2025-02-12
Las bibliotecas dart:js, dart:js_util y package:js están oficialmente
obsoletas. Se espera que sean eliminadas en una versión futura. Los proyectos
deben migrar para usar dart:js_interop. Para aprender más, consulta el uso de
interoperabilidad JS.
Released: 2025-02-12
Las reglas de lint package_api_docs y unsafe_html
han sido eliminadas y deben eliminarse de
los archivos analysis_options.yaml.
Released: 2025-02-12
El comando dart format ahora está vinculado a la versión del lenguaje a partir de 3.7. Si
la versión del lenguaje de un archivo de entrada es 3.7 o posterior, el código se formatea
con el nuevo estilo alto.
El nuevo estilo se parece al estilo que obtienes cuando agregas comas finales a listas de argumentos, excepto que ahora el formateador agregará y eliminará esas comas por ti. Cuando una lista de argumentos o parámetros se divide, se formatea así:
longFunction(
longArgument,
anotherLongArgument,
);
Released: 2025-02-12
La opción --line-length para dart format ha sido obsoleta y establecida para
ser eliminada. Todos los usos deben migrarse a la nueva opción --page-width.
3.6
Released: 2025-01-30
Esta versión de parche corrige errores en codificación de respuesta de HttpServer, análisis de separadores de dígitos de dart format, analíticas de DevTools y
aplicación de dart fix.
Released: 2025-01-08
Esta versión de parche corrige problemas con pub get en espacios de trabajo, fallos de compilación
AOT/dart2wasm y descubrimiento de opciones de análisis en espacios de trabajo.
Released: 2024-12-11
Se introdujeron separadores de dígitos para literales numéricos, se mejoró la inferencia de tipos de expresiones throw
y se agregó soporte para espacios de trabajo pub. También se agregaron
nuevos constructores y métodos JSArray en dart:js_interop, y varios
nuevos lints y asistentes.
Released: 2024-12-11
Se agregó soporte para guiones bajos separadores de dígitos (_) al lenguaje. Los separadores
de dígitos mejoran la legibilidad de literales numéricos largos.
var m = 1__000_000__000_000__000_000;
Released: 2024-12-11
El contexto usado por Dart para realizar inferencia de tipos en el operando de una expresión throw
ha sido cambiado del "tipo desconocido" a Object. Esto hace
que el sistema de tipos sea más autoconsistente, porque refleja el hecho de que no es
legal lanzar null. Este cambio no se espera que haga ninguna diferencia
en la práctica.
dart:ioReleased: 2024-12-11
El constructor Platform() ha sido eliminado. Todas las instanciaciones de
Platform deben eliminarse.
dart:ioReleased: 2024-12-11
HttpClient ahora responde a una redirección que falta un encabezado "Location"
lanzando una RedirectException en lugar de un StateError.
Released: 2024-12-11
Las reglas de lint package_api_docs y unsafe_html
han sido obsoletas y están establecidas para ser eliminadas en Dart 3.7.
Released: 2024-12-11
El compilador de Dart ahora calcula los cierres superior e inferior de esquemas de tipos justo antes de pasarlos al procedimiento de prueba de subtipos. Antes de Dart 3.6, el compilador los calculaba al principio de los cálculos de límites superior e inferior. El analizador ya seguía este comportamiento, por lo que las aplicaciones que ya pasan el análisis es poco probable que se vean afectadas por este cambio.
Released: 2024-12-11
La condición dart.library.js ahora es false en importaciones condicionales al
compilar a WebAssembly. La condición dart.library.js_interop
debe usarse
en su lugar.
Released: 2024-12-11
Los siguientes cambios podrían resultar en pequeños cambios de formato al ejecutar
dart format con un SDK de Dart 3.6 o posterior:
Released: 2024-12-11
Preservar parámetros de tipo en formales de tipo función de estilo antiguo que también usan
this. o super..
Released: 2024-12-11
Formatear correctamente importaciones con cláusulas as y if.
Released: 2024-12-11
dart pub publish ahora advierte si los archivos rastreados en git tienen
cambios sin confirmar.
3.5
Released: 2024-09-11
Esta versión de parche corrige problemas con OOMs de la herramienta de memoria de DevTools, barras de pestañas faltantes en IntelliJ/Android Studio y notas de versión persistentes.
Released: 2024-08-28
Esta versión de parche corrige errores en ZLibDecoder, ejecutar dart desde PATH
y raíces de contexto del servidor de análisis en espacios de trabajo multipaquete.
Released: 2024-08-14
Esta versión de parche corrige problemas con include: en analysis_options.yaml,
mapas de fuente wasm y varios errores del compilador dart2wasm.
Released: 2024-08-06
Se alineó la inferencia de tipos para expresiones await e if-null con el
analizador. También se actualizó dart:core DateTime
en web para almacenar
microsegundos, se hizo SecurityContext final y se eliminó el soporte de seguridad de nulidad
no sólida en la VM.
Released: 2024-08-06
Cuando el contexto para una expresión await es dynamic, el contexto para el
operando de la expresión ahora es FutureOr<_>. Esto se ha cambiado para coincidir
con el comportamiento del analizador.
Released: 2024-08-06
Cuando el contexto para una expresión if-null completa (e1 ?? e2) es dynamic,
el contexto para e2 ahora es el tipo estático de e1. Esto se ha cambiado
para coincidir con el comportamiento del analizador. El comportamiento anterior puede restaurarse
proporcionando tipos explícitos.
dart:coreReleased: 2024-08-06
DateTime ahora almacena microsegundos en la plataforma web, coincidiendo más
estrechamente con el comportamiento en plataformas nativas.
dart:iodart:js_interop
Released: 2024-08-06
importModule ahora acepta JSAny en lugar de String para admitir otros
valores JS también, como objetos TrustedScriptURL.
dart:js_interop
Released: 2024-08-06
isTruthy y not ahora devuelven JSBoolean en lugar de bool
para ser
consistentes con otros métodos de operador JS.
dart:js_interop
Released: 2024-08-06
ExternalDartReference ya no implementa Object. En su lugar, ahora
acepta un parámetro de tipo (T) con un límite de Object?
para capturar el tipo
del objeto Dart que es externalizado.
dart:typed_data
Released: 2024-08-06
Las clases de vista no modificables para datos tipados han sido eliminadas. En lugar de
usar los constructores de estas clases, usa los nuevos métodos asUnmodifiableView
en listas de datos tipados.
Released: 2024-08-06
Dart VM ya no admite la seguridad de nulidad no sólida.
- La opción CLI
--no-sound-null-safetyha sido eliminada. - Las funciones
Dart_NewListOfyDart_IsLegacyTypehan sido eliminadas de la API de C.
Released: 2024-08-06
La función Dart_DefaultCanonicalizeUrl ha sido eliminada de la API de C.
3.4
Released: 2024-06-12
Esta versión de parche corrige problemas con obtención de avisos pub,
importaciones condicionales dart.library.ffi en dart2wasm y argumentos variádicos
en FFI de MacOS Arm64.
Released: 2024-06-05
Esta versión de parche corrige errores en análisis de DART_VM_OPTIONS de dart compile exe,
límites de array.new_fixed() de dart2wasm y agrega
soporte --enable-experiment a dart2wasm.
Released: 2024-05-29
Esta versión de parche marca dart compile wasm como estable. También corrige errores
en manejo de excepciones de dart2wasm, restauración de this en funciones asíncronas e
implementa construcciones de flujo de control faltantes.
Released: 2024-05-22
Esta versión de parche corrige un error de CFE que afecta aplicaciones web Flutter compiladas con dart2wasm y un error del cliente pub que interfiere con l10n de Flutter.
Released: 2024-05-14
Se mejoró el análisis de tipos para expresiones condicionales, if-null y
expresiones switch. También se agregó ExternalDartReference a
dart:js_interop, se obsoletaron vistas de datos tipados no modificables y se eliminó
waitFor de dart:cli.
Released: 2024-05-14
Se agregaron mejoras al análisis de tipos de expresiones condicionales, expresiones y asignaciones if-null y expresiones switch.
Released: 2024-05-14
El esquema de tipo de contexto de patrón para patrones de conversión ahora es _ (el tipo
desconocido) en lugar de Object?.
Released: 2024-05-14
El esquema de tipo usado por los compiladores de Dart para realizar inferencia de tipos en el
operando de un operador spread con conocimiento de nulidad (...?) en literales
map y set
se ha hecho anulable, para coincidir con lo que actualmente sucede en literales
list.
dart:clidart:html, dart:indexed:db, dart:svg, dart:web_audo, dart:web_gl
Released: 2024-05-14
Estas bibliotecas ahora están marcadas como heredadas y verán menos soporte en el
futuro. Los nuevos proyectos deberían preferir usar package:web
y
dart:js_interop. Para aprender más, consulta Migrate to
package:web.
dart:jsReleased: 2024-05-14
Esta biblioteca ahora está marcada como heredada y verá menos soporte en el
futuro. Los usos deben migrarse a dart:js_interop y
dart:js_interop_unsafe. Para aprender más, consulta
/go/next-gen-js-interop.
dart:js_utilReleased: 2024-05-14
Esta biblioteca ahora está marcada como heredada y verá menos soporte en el
futuro. Los usos deben migrarse a dart:js_interop y
dart:js_interop_unsafe. Para aprender más, consulta
/go/next-gen-js-interop.
dart:ioReleased: 2024-05-14
Stdout tiene un nuevo campo lineTerminator, que permite a los desarrolladores
controlar el final de línea usado por stdout y stderr. Las clases que
implementan Stdout deben definir el campo lineTerminator.
Las semánticas
predeterminadas de stdout y stderr no cambian.
dart:ioReleased: 2024-05-14
La propiedad FileSystemDeleteEvent.isDirectory. Siempre devuelve false.
dart:typed_data
Released: 2024-05-14
Las clases de vista no modificables para datos tipados están obsoletas. En lugar de
usar los constructores de estas clases, usa los nuevos métodos asUnmodifiableView
en listas de datos tipados.
Released: 2024-05-14
Ahora debes especificar un formato para la opción CLI --dump-info de binary o
json. El formato json está obsoleto y podría eliminarse en
una versión futura de Dart.
Released: 2024-05-14
Varios argumentos CLI de dart compile wasm han sido actualizados, eliminados o
reemplazados. Para aprender más, ejecuta dart compile wasm --verbose --help.
Released: 2024-05-14
Dart VM ya no admite cadenas externas. Como resultado, las funciones
Dart_IsExternalString, Dart_NewExternalLatin1String y
Dart_NewExternalUTF16String han sido eliminadas de la API de C de Dart.
3.3
Released: 2024-04-17
Esta versión de parche corrige un problema con interoperabilidad JS en dart2wasm donde las anotaciones
@JS en bibliotecas envolventes se usaban incorrectamente.
Released: 2024-03-27
Esta versión de parche corrige un fallo de Dart VM en CPUs Windows más antiguas que carecen de SSE4.1.
Released: 2024-03-20
Esta versión de parche corrige errores en el CFE relacionados con fallos de compilación incremental
y fábricas redirigidas en tipos de extensión, y un problema de VM con
DateTime.timeZoneName en Windows.
Released: 2024-03-06
Esta versión de parche corrige un problema de dart2js con constructores de literales de objeto en
tipos de extensión de interoperabilidad y deshabilita ciertos tipos de extensión en expresiones
await.
Released: 2024-02-15
Se introdujeron tipos de extensión para wrappers de costo cero, se mejoró la promoción
de campos privados y se agregaron nuevas características a dart:ffi y
dart:js_interop,
incluyendo Native.addressOf y importModule.
Released: 2024-02-15
Los siguientes experimentos ahora están retirados ya que se lanzaron en Dart 3 y ya no son necesarios con una versión de lenguaje de 3.0 o superior. La configuración de ellos debe eliminarse de las opciones de análisis, comandos CLI y configuraciones de IDE.
patternsrecordsclass-modiferssealed-class
Released: 2024-02-15
Se agregó soporte para tipos de extensión. Los tipos de extensión son una nueva característica en Dart que permite el envoltorio de costo cero de un tipo existente. Son similares a clases wrapper y métodos de extensión, pero con diferencias de implementación y compensaciones diferentes.
extension type Meters(int value) {
String get label => '${value}m';
Meters operator +(Meters other) => Meters(value + other.value);
}
void main() {
var m = Meters(42); // Has type `Meters`.
var m2 = m + m; // OK, type `Meters`.
// int i = m; // Compile-time error, wrong type.
// m.isEven; // Compile-time error, no such member.
assert(identical(m, m.value)); // Succeeds.
}
Released: 2024-02-15
Los getters abstractos ahora son promovibles bajo las reglas de promoción de campos finales privados, si no hay declaraciones conflictivas.
dart:cliReleased: 2024-02-15
La función waitFor permanece obsoleta por otra versión y está programada
para eliminación en Dart 3.4.
dart:ffiReleased: 2024-02-15
Los métodos de aritmética de punteros elementAt en tipos Pointer están
obsoletos. Migra a los operadores - y + en su lugar.
dart:ffiReleased: 2024-02-15
La anotación previamente obsoleta @FfiNative ha sido eliminada. Los usos
deben actualizarse para usar la anotación @Native.
dart:htmlReleased: 2024-02-15
En lugar de usar HttpRequest directamente, ahora se recomienda usar
package:http.
dart:ioReleased: 2024-02-15
En lugar de usar HttpClient directamente, ahora se recomienda usar
package:http.
dart:js_interop
Released: 2024-02-15
Los tipos JS como JSAny tienen nuevos tipos de representación específicos del compilador.
dart:js_interop
Released: 2024-02-15
Las clases @staticInterop definidas por el usuario ya no pueden implementar JSAny o
JSObject. Los usos deben migrarse a JSObject.fromInteropObject
o ser
definidos como tipos de extensión.
dart:js_interop
Released: 2024-02-15
JSArray y JSPromise ahora tienen parámetros genéricos.
dart:js_interop
Released: 2024-02-15
Varios miembros de extensión fueron movidos o renombrados. Para aprender sobre las extensiones
actualizadas, consulta JSAnyUtilityExtension y JSAnyOperatorExtension.
dart:typed_data
Released: 2024-02-15
Las clases de vista no modificables para datos tipados estarán obsoletas en Dart 3.4.
En lugar de usar los constructores de estas clases, usa los nuevos
métodos asUnmodifiableView en listas de datos tipados.
dart:nativewrappers
Released: 2024-02-15
Todas las clases wrapper nativas ahora están marcadas como base para que ninguna de sus
subtipos pueda ser implementada.
Released: 2024-02-15
La Invocation que se pasa a noSuchMethod ya no tiene un memberName
minificado, incluso cuando se compila con --minify.
Released: 2024-02-15
No se permite importar bibliotecas de interoperabilidad JS heredadas. Prefiere usar
dart:js_interop y dart:js_interop_unsafe
en su lugar.
Released: 2024-02-15
Las directivas de comentario dart doc inválidas ahora son reportadas por el analizador.
Released: 2024-02-15
Debido a mejoras en la promoción de tipos, los siguientes diagnósticos del analizador podrían activarse en código existente que anteriormente pasó el análisis:
unnecessary_non_null_assertionunnecessary_castinvalid_null_aware_operator
Released: 2024-02-15
Los lints iterable_contains_unrelated_type y list_remove_unrelated_type
fueron eliminados. Considera migrar al lint expandido
collection_methods_unrelated_type.
Released: 2024-02-15
Los siguientes lints son eliminados debido a que ya no son necesarios con seguridad de nulidad sólida.
Debes eliminar su configuración de tus archivos analysis_options.yaml y cualquier comentario de ignorar.
always_require_non_null_named_parametersavoid_returning_nullavoid_returning_null_for_future
3.2
Released: 2023-12-06
Esta versión de parche corrige problemas con campos finales en contextos constantes, actualiza DevTools y corrige fallos de snapshots AOT en ciertas CPUs ARM/x86-64.
Released: 2023-11-29
Esta versión de parche ajusta los cálculos de nulidad en el algoritmo de límite superior y corrige el autocompletado de código de cierre faltante en editores basados en LSP.
Released: 2023-11-22
Esta versión de parche corrige errores en generación de dart doc, análisis de arreglos JSON
causando segfaults en flutter test y actualiza DevTools.
Released: 2023-11-15
Se introdujo la promoción de campos privados, permitiendo que campos finales privados
sean promovidos a tipos no nulos. También incluye cambios rompimiento a puntos de división
de patrones refutables, deshabilitó waitFor por defecto y cambió el tipo de retorno
de utf8.encode a Uint8List.
Released: 2023-11-15
Se expandió la promoción de tipos para trabajar en campos finales privados. Anteriormente solo
disponible para variables locales y parámetros, ahora los campos finales privados pueden
promover a tipos no nulos a través de verificaciones de nulidad y pruebas is.
Por ejemplo, el siguiente código ahora es sólido:
class Example {
final int? _privateField;
Example(this._privateField);
void f() {
if (_privateField != null) {
// _privateField has now been promoted; you can use it without
// null checking it.
int i = _privateField; // OK
}
}
}
// Private field promotions also work from outside of the class:
void f(Example x) {
if (x._privateField != null) {
int i = x._privateField; // OK
}
}
Para más información sobre cuándo los campos finales privados pueden y no pueden promover, consulta Fixing type promotion failures.
Released: 2023-11-15
Se corrigieron inconsistencias en el comportamiento de promoción de tipos de declaraciones if-case donde el valor contra el que se coincide lanza una excepción.
Released: 2023-11-15
Se cambió el punto de división para patrones refutables al patrón de nivel superior para que la promoción de tipos en declaraciones if-case sea consistente independientemente de si el scrutinee podría lanzar una excepción.
dart:clidart:convertReleased: 2023-11-15
Se cambiaron los tipos de retorno de utf8.encode() y Utf8Codec.encode() de
List<int> a Uint8List.
dart:developer
Released: 2023-11-15
Se obsoletó el método Service.getIsolateID.
dart:ffiReleased: 2023-11-15
Se cambió NativeCallable.nativeFunction para que las llamadas ahora lancen un error si el
receptor ya está cerrado, en lugar de devolver nullptr.
dart:iodart:ioReleased: 2023-11-15
Se insertó un espacio en el punto de plegado de valores de encabezado plegados que
HttpClientResponse.headers y HttpRequest.headers
devuelven.
dart:js_interop
Released: 2023-11-15
JSNumber.toDart a favor de toDartDouble y toDartInt.
dart:js_interop
Released: 2023-11-15
Object.toJS a favor de Object.toJSBox.
dart:js_interop
Released: 2023-11-15
Se restringieron las APIs de interoperabilidad JS externas usando dart:js_interop a un conjunto de
tipos permitidos.
dart:js_interop
Released: 2023-11-15
Se prohibió el uso de isNull y isUndefined en dart2wasm.
dart:js_interop
Released: 2023-11-15
Se cambiaron las APIs typeofEquals y instanceof para que ambas devuelvan bool en lugar de
JSBoolean. Además, typeofEquals ahora toma
String en lugar de JSString.
dart:js_interop
Released: 2023-11-15
Se cambiaron los tipos JSAny y JSObject para que solo sean implementables, no extensibles,
por tipos @staticInterop del usuario.
dart:js_interop
Released: 2023-11-15
Se cambió JSArray.withLength para tomar int en lugar de JSNumber.
Released: 2023-11-15
Se agregaron interceptores para tipos JavaScript Symbol y BigInt; ya no deben
usarse con clases package:js.
Released: 2023-11-15
Se agregaron interceptores para tipos JavaScript Symbol y BigInt; ya no deben
usarse con clases package:js.
Released: 2023-11-15
La promoción de campos finales privados podría causar que las siguientes advertencias del analizador se activen en código existente que anteriormente pasó el análisis:
class C {
final num? _x = null;
void test() {
if (_x != null) {
print(_x! * 2); // unnecessary_non_null_assertion
print(_x?.abs()); // invalid_null_aware_operator
}
if (_x is int) {
print((_x as int).bitLength); // unnecessary_cast
}
}
}
3.1
Released: 2023-10-25
Esta versión de parche corrige un problema que afecta a Dart compilado a JavaScript ejecutándose en Node.js 21.
Released: 2023-10-18
Esta versión de parche corrige un problema de Dart VM donde los valores de variables no eran visibles durante la depuración.
Released: 2023-09-27
Esta versión de parche corrige un fallo de dart2js con fábricas @staticInterop,
evita conflictos de símbolos en la VM independiente y corrige el acceso lento a variables
durante la depuración.
Released: 2023-09-13
Esta versión de parche corrige un fallo de dart2js con patrones de registro tipados en inicializadores de campo y corrige pausas de excepciones no manejadas en el depurador.
Released: 2023-09-07
Esta versión de parche corrige un error del analizador que impedía que patrones de registro anidados usaran la sintaxis abreviada de desestructuración.
dart:async, dart:io
Released: 2023-08-16
Se agregaron cambios rompimiento a modificadores de clase en dart:async y dart:io,
se introdujo NativeCallable para FFI y se hicieron varias actualizaciones a
dart:core y dart:js_interop.
dart:asyncReleased: 2023-08-16
Se agregó el modificador interface a clases puramente abstractas:
MultiStreamController, StreamConsumer, StreamIterator
y
StreamTransformer.
dart:iodart:ioReleased: 2023-08-16
FileSystemEvent es sealed. Esto significa que FileSystemEvent no puede ser
extendido o implementado.
dart:js_interop
Released: 2023-08-16
ObjectLiteral; crea un literal de objeto sin miembros nombrados usando
{}.jsify().
package:jsReleased: 2023-08-16
Los miembros external @staticInterop y los miembros de extensión external ya no
pueden usarse como tear-offs. Declara un closure o un método no external
que llame a estos miembros, y usa eso en su lugar.
package:jsReleased: 2023-08-16
Los miembros external @staticInterop y los miembros de extensión external generarán
código JS ligeramente diferente para métodos que tienen parámetros opcionales.
3.0
Released: 2023-07-26
Esta versión de parche corrige un error de dart2js que causa TypeError o
NoSuchMethodError al usar registros.
Released: 2023-07-12
Esta versión de parche corrige problemas con análisis de flujo, bucles infinitos en compilaciones web que involucran registros y fugas de memoria en el analizador.
Released: 2023-06-14
Esta versión de parche corrige una conversión incorrecta en el front-end que causa fallos de dart2js durante compilaciones web de Flutter.
Released: 2023-06-07
Esta versión de parche corrige dart format para tipos de registro anulables sin
campos y errores al usar registros en modo de desarrollo web.
Released: 2023-02-07
Esta versión de parche corrige fallos del compilador AOT, problemas de coincidencia de patrones, agrega
modificadores interface faltantes y mejora el soporte de linter.
Released: 2023-05-24
Esta versión de parche corrige fallos de dart2js con expresiones switch en registros,
agrega chips de modificador de clase a dart doc y corrige bucles infinitos del analizador.
Released: 2023-05-17
Esta versión de parche corrige fallos del compilador con fábricas redirigidas y FFI, fallos de dart2js con funciones locales y registros, y varios otros errores.
Released: 2023-05-10
Se introdujeron características principales del lenguaje incluyendo registros, patrones, modificadores de clase y seguridad de nulidad 100% sólida. También se hicieron muchas otras mejoras y cambios rompimiento en toda la plataforma.
Released: 2023-05-10
Se agregó soporte para patrones, una nueva categoría de gramática que te permite coincidir y desestructurar valores.
Released: 2023-05-10
Se agregó soporte para registros, un nuevo tipo que te permite agregar múltiples valores de diferentes tipos en un solo retorno de función.
Released: 2023-05-10
Se agregó soporte para modificadores de clase, un nuevo conjunto de palabras clave que te permiten controlar cómo se puede usar una clase o mixin.
Released: 2023-05-10
Se agregó soporte para expresiones switch, una nueva forma de ramificación múltiple permitida donde se esperan expresiones.
Released: 2023-05-10
Se agregó soporte para cláusulas if-case, un constructo condicional nuevo que coincide un valor con un patrón y ejecuta la rama then o else, dependiendo de si el patrón coincide.
Released: 2023-05-10
Se cambió la interpretación de casos switch de expresiones constantes a patrones.
Released: 2023-05-10
Las declaraciones de clase de bibliotecas que han sido actualizadas a Dart 3.0 ya no pueden usarse como mixins por defecto.
Released: 2023-05-10
Ahora es un error de tiempo de compilación si se usa un dos puntos (:) como el separador
antes del valor predeterminado de un parámetro nombrado opcional. Usa un signo igual
(=) en su lugar.
Released: 2023-05-10
Ahora es un error de tiempo de compilación si una declaración continue apunta a una etiqueta
que no está adjunta a una declaración de bucle (for, do y
while) o a un
miembro switch.
Released: 2023-05-10
Las siguientes clases existentes se han convertido en clases mixin: Iterable,
IterableMixin, IterableBase, ListMixin,
SetMixin, MapMixin,
LinkedListEntry, StringConversionSink.
dart:asyncReleased: 2023-05-10
Las siguientes APIs han sido eliminadas:
dart:core + argumento onError eliminado de int.parse, double.parse
y num.parse. + Deprecated.expires (usa
Deprecated.message en su lugar).
proxy,Provisional,BidirectionalIteratorclases y constantes. + Estos errores fueron eliminados:AbstractClassInstantiationError,CyclicInitializationError,NullThrownError,FallThroughError,CastError(usaTypeError), constructor predeterminadoNoSuchMethodError(usaNoSuchMethod.withInvocation).
dart:async + DeferredLibrary (usa la sintaxis import ... deferred as ...
en su lugar).
dart:developer + MAX_USER_TAGS eliminado de UserTag.
dart:html + document.registerElement y registerElement2
dart:coredart:asyncdart:collection
dart:developer
Released: 2023-05-10
Se eliminó la constante obsoleta
MAX_USER_TAGS.
Usa
maxUserTags
en su lugar.
dart:developer
dart:developer
dart:ffiReleased: 2023-05-10
La anotación @FfiNative ahora está obsoleta. Los usos deben actualizarse para
usar la anotación @Native.
dart:htmlReleased: 2023-05-10
Se eliminaron los métodos obsoletos registerElement y registerElement2 en
Document y HtmlDocument.
dart:mathReleased: 2023-05-10
La interfaz Random solo se puede implementar, no extender.
dart:ioReleased: 2023-05-10
Se actualizó NetworkProfiling para acomodar nuevos ids String que son
introducidos en vm_service:11.0.0
Released: 2023-05-10
La versión 3.0 del Dart SDK eliminó el soporte para language versions anteriores a 2.12.
2.19
Released: 2023-03-29
Esta versión de parche corrige un fallo de Dart VM al leer un campo estático definido pero no inicializado.
Released: 2023-03-08
Esta versión de parche corrige fallos de VM en dispositivos móviles causados por uso específico de RegExp.
Released: 2023-03-01
Esta versión de parche actualiza la configuración de DDC y limita el número de complementos por contexto de análisis para prevenir un uso extremo de memoria en el Servidor de Análisis.
Released: 2023-02-08
Esta versión de parche corrige fallos de VM con cálculos mixtos double/float,
fallos del compilador al alinear métodos con muchos parámetros opcionales y errores
part_of_different_library en PackageBuildWorkspace.
Released: 2023-02-01
Esta versión de parche corrige el comportamiento de pub get con lockfiles más antiguos,
detiene la reescritura de restricciones del SDK y corrige un fallo de VM causado por uso incorrecto
de RegExp entre isolates.
Released: 2023-01-24
Se introdujo soporte para bibliotecas sin nombre, se mejoró el análisis de flujo para código inalcanzable y se reportaron errores de tiempo de compilación para dependencias cíclicas durante inferencia de tipos de nivel superior.
Released: 2023-01-25
Se agregó soporte para bibliotecas sin nombre. Las directivas de biblioteca, usadas para agregar comentarios de doc y anotaciones a nivel de biblioteca, ahora pueden y deben escribirse sin nombre:
/// A really great test library.
@TestOn('browser')
library;
Released: 2023-01-25
Se agregaron más indicadores de análisis de flujo para casos de código inalcanzable.
Released: 2023-01-25
Se marcó código adicional como inalcanzable debido a los tipos Null y Never.
Released: 2023-01-25
Reportar un error de tiempo de compilación para todas las dependencias cíclicas durante inferencia de tipos de nivel superior.
dart:convertReleased: 2023-01-25
La API previamente obsoleta DEFAULT_BUFFER_SIZE en JsonUtf8Encoder ha
sido eliminada.
dart:developer
Released: 2023-01-25
Se eliminaron las APIs previamente obsoletas kInvalidParams, kExtensionError,
kExtensionErrorMax y kExtensionErrorMin
en
ServiceExtensionResponse.
dart:ffiReleased: 2023-01-25
Se cambió el argumento de tipo de tiempo de ejecución de Pointer a Never en preparación
para eliminar completamente el argumento de tipo de tiempo de ejecución. Se cambió Pointer.toString
para
no reportar ningún argumento de tipo.
dart:iodart:ioReleased: 2023-01-25
File.create ahora toma un nuevo parámetro opcional exclusive bool, y cuando
es true la operación fallará si el archivo objetivo ya existe.
dart:ioReleased: 2023-01-25
Llamar a ResourceHandle.toFile(), ResourceHandle.toSocket(),
ResourceHandle.toRawSocket() o ResourceHandle.toRawDatagramSocket()
más de una vez ahora lanza un StateError.
dart:isolateReleased: 2023-01-25
Se revirtió SendPort.send a verificaciones estrictas en el contenido de mensajes al
enviar mensajes entre isolates que no se sabe que comparten el mismo código.
dart:mirrorspackage:jsReleased: 2023-01-25
Cambios rompimiento a la característica de vista previa @staticInterop:
- Se deshabilitaron clases con esta anotación de usar constructores generativos
external. Consulta 48730 y 49941 para más detalles. - Se deshabilitaron clases con miembros de extensión externos de esta anotación de usar parámetros de tipo.
- Las clases con esta anotación también deben tener la anotación
@JS. - Las clases con esta anotación no pueden ser implementadas por clases sin esta anotación.
dart2js2.18
Released: 2022-11-23
Esta versión de parche corrige problemas con setters de variables privadas en mixins en web y nulabilidad de parámetros de tipo en constructores de fábrica.
Released: 2022-10-19
Esta versión de parche corrige una regresión en el cálculo de cobertura de código.
Released: 2022-09-28
Esta versión de parche corrige comportamiento incorrecto en Uri.parse y un fallo
del compilador.
Released: 2022-09-14
Esta versión de parche corrige un fallo causado por una inferencia de tipos incorrecta.
Released: 2022-08-30
Se mejoró la inferencia de tipos para invocaciones genéricas con literales de función,
se introdujeron cambios rompimiento en APIs de red de dart:io y se
eliminaron herramientas independientes como dart2js y dartanalyzer.
Released: 2022-08-30
Inferencia de tipos mejorada. Este cambio permite el flujo de información entre argumentos en llamadas a funciones genéricas. Antes de 2.18, si no especificabas el tipo de un argumento en algunos métodos, Dart reportaba errores. Estos errores de tipo citaban ocurrencias potenciales de null. Con 2.18, el compilador infiere el tipo de argumento de otros valores en una invocación. No necesitas especificar el tipo de argumento en línea.
dart:ioReleased: 2022-08-30
Se cambió la propiedad uri de RedirectException en dart:io para ser
anulable.
dart:ioReleased: 2022-08-30
Se eliminaron constantes en APIs de red de dart:io siguiendo la
convención SCREAMING_CAPS.
dart:ioReleased: 2022-08-30
Dart VM ya no restaura automáticamente la configuración inicial de la terminal al salir.
2.17
Released: 2022-07-13
Esta versión de parche mejora el autocompletado de código para Flutter, corrige un fallo en
ARM y corrige un fallo del compilador con parámetros Finalizable.
Released: 2022-06-22
Esta versión de parche mejora el análisis de enums y declaraciones switch, y
corrige un fallo del compilador al inicializar objetos Finalizable.
Released: 2022-06-01
Esta versión de parche corrige un fallo del compilador de Dart VM, autocompletado de código para
anulaciones de métodos, dart pub login y análisis de enums mejorados.
Released: 2022-05-18
Esta versión de parche corrige un fallo de complemento del analizador, soporte de FFI para variables
late Finalizable y dart compile en macOS 10.15.
Released: 2022-05-11
Se introdujeron enums mejorados con miembros, parámetros de inicializador super,
argumentos nombrados en cualquier lugar y actualizaciones a dart:core
y
dart:ffi.
Released: 2022-05-11
Se agregó soporte para enums mejorados con miembros. Los enums mejorados permiten que las declaraciones enum definan miembros incluyendo campos, constructores, métodos, getters, etc.
Released: 2022-05-11
Se agregó soporte para parámetros de inicializador super. Los parámetros super te permiten evitar tener que pasar manualmente cada parámetro a la invocación super de un constructor no redirigido. En su lugar puedes usar parámetros super para reenviar parámetros a un constructor de superclase.
Released: 2022-05-11
Se agregó soporte para argumentos nombrados en cualquier lugar. Los argumentos nombrados ahora pueden intercalarse libremente con argumentos posicionales. Puedes escribir el siguiente código:
void main() {
test(skip: true, 'A test description', () {
// Very long function body here...
});
}
dart:iodart:ioReleased: 2022-05-11
Se agregó una nueva propiedad keyLog a HttpClient, que permite que las claves TLS
se registren para propósitos de depuración.
dart:iodart:ioReleased: 2022-05-11
Se agregó una nueva propiedad allowLegacyUnsafeRenegotiation a SecurityContext,
que permite la renegociación TLS para sockets seguros de cliente.
2.16
Released: 2022-03-24
Esta versión de parche corrige un fallo de dart2js al construir algunas aplicaciones web Flutter.
Released: 2022-02-09
Esta versión de parche corrige un fallo del precompilador AOT al construir algunas aplicaciones Flutter.
Released: 2022-02-03
Se agregó Error.throwWithStackTrace, enteros específicos Abi en FFI,
se mejoró dart pub con concurrencia y nuevos comandos, y se obsoletaron
herramientas independientes a favor de comandos dart.
dart:ioReleased: 2022-02-03
En Windows, Directory.rename ya no eliminará un directorio si
newPath especifica uno. En su lugar, se lanzará una FileSystemException.
dart:iodart:isolate2.15
Released: 2021-12-14
Esta versión de parche corrige un fallo de compilación AOT en algunas aplicaciones Flutter y
problemas con dart pub publish para servidores con una ruta en la URL.
Released: 2021-12-08
Se introdujeron tear-offs de constructor, literales de tipo genérico, instanciaciones
explícitas de métodos genéricos y mejoras a enums de dart:core
y
herramientas de desarrollador.
Released: 2021-12-08
Soporte mejorado para punteros de función, conocidos como tear-offs. En particular, los tear-offs de constructor ahora son admitidos.
dart:ioReleased: 2021-12-08
Se actualizó la clase SecurityContext para establecer la versión mínima del protocolo TLS
a TLS1_2_VERSION (1.2) en lugar de TLS1_VERSION.
dart:web_sqldart:htmlReleased: 2021-12-08
Se eliminó window.openDatabase (relacionado con la eliminación de dart:web_sql arriba).
Released: 2021-12-08
Se eliminó la herramienta independiente dartfmt.
Released: 2021-12-08
Se agruparon los isolates generados a través de la API Isolate.spawn() para operar en el
mismo montículo administrado y, por lo tanto, compartir varias estructuras de datos internas de la VM.
2.14
Released: 2021-10-14
Esta versión de parche corrige una fuga de memoria de complementos del analizador y problemas con Dart VM cargando certificados expirados en Windows.
Released: 2021-09-30
Esta versión de parche corrige una regresión de rendimiento de autocompletado de código e información de depuración emitida por Dart VM.
Released: 2021-09-16
Esta versión de parche corrige fallos de dartdoc, mensajes de error para >>> en versiones
de lenguaje más antiguas y rutas inválidas de pubspec.lock en Windows.
Released: 2021-09-09
Esta versión de parche corrige el rendimiento de inicio de la herramienta de línea de comandos Dart en macOS ARM64 (Apple Silicon).
Released: 2021-09-09
Se introdujo el operador de desplazamiento triple >>>, se eliminaron restricciones
en argumentos de tipo para anotaciones y se agregaron nuevas características a dart:core
y
dart:ffi.
Released: 2021-09-08
Se agregó soporte para el operador de desplazamiento triple (>>>). Este nuevo operador funciona
como >>, excepto que siempre llena los bits más significativos con ceros.
Released: 2021-09-08
Se eliminaron restricciones en argumentos de tipo para anotaciones. Puedes pasar argumentos de tipo a anotaciones y usar un tipo de función genérico como argumento de tipo. A partir de esta versión, puedes escribir el siguiente código:
@TypeHelper<int>(42, "The meaning")
late List<T Function<T>(T)> idFunctions;
var callback = [<T>(T value) => value];
late S Function<S extends T Function<T>(T)>(S) f;
dart:ioReleased: 2021-09-08
Los callbacks setter .authenticate y .authenticateProxy en
HttpClient ahora deben aceptar un argumento realm anulable
(para código seguro de nulidad pre-migrado).
dart:typed_data
Released: 2021-09-08
La mayoría de los tipos expuestos por esta biblioteca ya no pueden ser extendidos, implementados o mezclados.
Released: 2021-09-08
Los Expandos, y los parámetros object de Dart_NewWeakPersistentHandle y
Dart_NewFinalizableHandle, ya no aceptan Pointer
y subtipos de
Struct
Released: 2021-09-08
Se obsoletó la herramienta independiente dartfmt.
dart2jsReleased: 2021-09-08
dart2js ya no admite navegadores heredados, porque emite JavaScript ES6+
por defecto.
Released: 2021-09-08
Se cambiaron las relaciones de subtipado de clases package:js para ser más correctas y
consistentes con Dart2JS.
2.13
Released: 2021-06-28
Esta versión de parche corrige un fallo del compilador de Dart VM y un fallo del compilador DDC.
Released: 2021-06-10
Esta versión de parche corrige un fallo del compilador Dart, un interbloqueo del servidor de análisis
y un fallo del analizador al usar package:meta v1.4.0.
Released: 2021-05-25
Esta versión de parche corrige comportamiento incorrecto en CastMap y nulabilidad
faltante de jerarquías de tipos recursivas en DDC.
Released: 2021-05-18
Se introdujeron alias de tipo no función, mejoras a
clases dart:collection y soporte FFI para structs empaquetados y arreglos
en línea.
Released: 2021-05-19
Se agregó soporte para alias de tipo para cualquier tipo, no solo funciones. Los alias de tipo solían funcionar solo para tipos de función pero ahora funcionan para cualquier tipo. Puedes usar el nuevo nombre creado con un alias de tipo en cualquier lugar donde el tipo original podría usarse.
dart:ffiReleased: 2021-05-19
Se agregó soporte para arreglos en línea en structs FFI y structs empaquetados.
package:jsReleased: 2021-05-19
Ya no es válido usar un String que coincida con una anotación @Native en una
anotación @JS() para una clase de interoperabilidad JS no anónima.
2.12
Released: 2021-04-15
Esta versión de parche corrige fallos del compilador de Dart VM al compilar inicializadores que contienen closures asíncronos.
Released: 2021-04-14
Esta versión de parche corrige una vulnerabilidad de seguridad en dart:html relacionada con
DOM clobbering (CVE-2021-22540).
Released: 2021-03-17
Esta versión de parche corrige fallos reportados por usuarios de Flutter 2.
Released: 2021-03-10
Esta versión de parche corrige una excepción no manejada en conexiones HTTPS y un
problema de tipificación en el operador typed_data +.
Released: 2021-03-03
Se introdujo seguridad de nulidad sólida, FFI estable y muchas otras nuevas características y mejoras en toda la plataforma.
Released: 2021-03-03
La seguridad de nulidad ahora está habilitada por defecto en todo el código que no ha optado por salir. Cuando optas por seguridad de nulidad, los tipos en tu código son no nulos por defecto, lo que significa que las variables no pueden contener null a menos que digas que pueden. Con seguridad de nulidad, tus errores de desreferenciación null en tiempo de ejecución se convierten en errores de análisis en tiempo de edición.
Released: 2021-03-03
Se corrigió un error de implementación donde this a veces sufriría promoción de tipo
en extensiones.
dart:ffidart:ffiReleased: 2021-03-03
Se obsoletaron invocaciones con un genérico T de sizeOf<T>,
Pointer<T>.elementAt(), Pointer<T extends Struct>.ref y
Pointer<T extends Struct>[]
dart:ffiReleased: 2021-03-03
Se obsoletó allocate en package:ffi, ya que ya no podrá
invocar sizeOf<T> genéricamente.
dart:ffiReleased: 2021-03-03
Dart_WeakPersistentHandle ya no se autoelimina cuando el
objeto referenciado es recolectado por el recolector de basura para evitar condiciones de carrera.
Released: 2021-03-03
Se renombró Dart_WeakPersistentHandleFinalizer a Dart_HandleFinalizer y se
eliminó su argumento handle.
2.10
Released: 2020-10-29
Esta versión de parche corrige cambios rompimiento en Chrome 86 que afectan DDC, errores del compilador con parámetros posicionales y fallos de compilación AOT.
Released: 2020-10-06
Esta versión de parche corrige fallos en aplicaciones Flutter, comportamiento no determinista y TypeErrors no capturados en DDC.
Released: 2020-09-28
Se introdujo una API C unificada para la VM, Dart_FinalizableHandles
y carga diferida de tipos en dart2js.
Released: 2020-10-01
Se renombró dart_api_dl.cc a dart_api_dl.c y se cambió a un archivo C puro.
2.9
Released: 2020-08-26
Corrige excepciones StackOverflow transitorias al compilar aplicaciones Flutter.
Released: 2020-08-05
Actualiza dart:io con exit devolviendo Never y OSError
implementando
Exception. Mejora los métodos dart:html CssClassSet
para devolver false
en lugar de null. Los compiladores web ahora dan error en la importación de
dart:mirrors.
dart:convertReleased: 2020-08-05
Al codificar una cadena que contiene sustitutos sin pareja como UTF-8, los sustitutos
sin pareja se codificarán como caracteres de reemplazo (U+FFFD).
dart:convertReleased: 2020-08-05
Al decodificar UTF-8, los sustitutos codificados se tratarán como entrada malformada.
dart:convertReleased: 2020-08-05
Se cambió el número de caracteres de reemplazo emitidos para secuencias de entrada malformadas
para coincidir con el estándar de codificación
WHATWG al decodificar
UTF-8 con allowMalformed: true.
dart:htmlReleased: 2020-08-05
CssClassSet.add() y CssClassSet.toggle ahora devuelven false en lugar de
null si el CssClassSet corresponde a múltiples elementos.
dart:mirrorsReleased: 2020-08-05
Los compiladores web (dart2js y DDC) ahora producen un error de tiempo de compilación si
dart:mirrors es importado.
Released: 2020-08-05
Al imprimir una cadena usando la función print, la implementación
predeterminada imprimirá cualquier sustituto sin pareja en la cadena como
caracteres de reemplazo (U+FFFD).
Released: 2020-08-05
La función Dart_StringToUTF8 en la API de Dart convertirá sustitutos
sin pareja en caracteres de reemplazo.
2.8
Released: 2020-05-28
Corrige fallos en aplicaciones Flutter, una regresión de seguimiento de pila y problemas de re-canonicalización de constantes.
Released: 2020-05-13
Corrige un error de compilación AOT que causa excepciones NoSuchMethod en transformaciones globales.
Released: 2020-05-06
Prepara para tipos no nulos con varios cambios rompimiento a APIs de bibliotecas principales.
Released: 2020-05-06
Se corrigió un error de implementación donde la inferencia de variable local usaría incorrectamente el tipo promovido de una variable de tipo.
Released: 2020-05-06
Se corrigió un error de implementación alrededor de las cláusulas implements Function,
extends Function o with Function que ya no tienen efecto desde Dart
2.0.0.
dart:asyncReleased: 2020-05-06
Se cambió el tipo de retorno de StreamSubscription.cancel() a Future<void>.
dart:asyncReleased: 2020-05-06
Se dividió la función runZoned() en dos funciones: runZoned() y
runZonedGuarded(), donde la última tiene un parámetro onError
requerido
y la primera no tiene ninguno.
dart:asyncReleased: 2020-05-06
Los errores pasados a Completer.completeError(), Stream.addError(),
Future.error(), etc. ya no pueden ser null.
dart:asyncdart:coreReleased: 2020-05-06
Tres miembros en RuneIterator ya no devuelven null cuando se accede antes
de la primera llamada a moveNext().
dart:coreReleased: 2020-05-06
El valor predeterminado de String.fromEnvironment() para defaultValue ahora es una
cadena vacía en lugar de null.
dart:coreReleased: 2020-05-06
El valor predeterminado para el parámetro defaultValue de int.fromEnvironment() ahora
es cero.
dart:ffiReleased: 2020-05-06
Se cambiaron Pointer.asFunction() y DynamicLibrary.lookupFunction() a
métodos de extensión.
dart:iodart:ioReleased: 2020-05-06
La clase Socket ahora lanza una SocketException si el socket ha sido
destruido explícitamente o actualizado a un socket seguro al establecer u obtener
opciones de socket.
dart:ioReleased: 2020-05-06
La clase Process ahora lanza un StateError si el proceso está separado
(ProcessStartMode.detached y ProcessStartMode.detachedWithStdio) al
acceder al getter exitCode.
dart:ioReleased: 2020-05-06
La clase Process ahora también lanza cuando no está conectada al stdio
del proceso hijo (ProcessStartMode.detached y
ProcessStartMode.inheritStdio) al acceder a los getters stdin,
stdout y
stderr.
dart:ioReleased: 2020-05-06
El objeto dummy devuelto si FileStat.stat() o FileStat.statSync() fallan
ahora contiene marcas de tiempo de la época Unix en lugar de null para los getters
accessed,
changed y modified.
dart:ioReleased: 2020-05-06
La clase HeaderValue ahora analiza más estrictamente en dos casos de borde inválidos.
Released: 2020-05-06
Corregimos varias inconsistencias entre DDC y Dart2JS para que los usuarios encuentren menos frecuentemente código que es aceptado por un compilador pero luego falla en el otro.
Released: 2020-05-06
Las funciones pasadas a JavaScript usando la especificación de interoperabilidad package:js
recomendada ahora deben estar envueltas con una llamada a allowInterop.
Released: 2020-05-06
Los constructores en clases @JS() deben estar marcados con external.
dart2jsReleased: 2020-05-06
Los límites de parámetros de tipo correspondientes ahora solo necesitan ser subtipos mutuos en lugar de estructuralmente iguales hasta el renombramiento de variables de tipo límite y equiparando todos los tipos superiores.
dart2jsdart2jsReleased: 2020-05-06
Los constructores en clases @JS() deben estar marcados con external.
dart2jsReleased: 2020-05-06
Se eliminó completamente la bandera --package-root, que estaba oculta y deshabilitada
en Dart 2.0.0.
2.7
Released: 2020-03-23
Corrige una vulnerabilidad de seguridad en dart:html (CVE-2020-8923) y mejora
la compatibilidad ARMv8.
Released: 2020-01-23
Mejora el tiempo de compilación de dart2js y cambia la disponibilidad del SDK de macOS a solo x64.
Released: 2019-12-11
Introduce soporte oficial para métodos de extensión. Agrega nuevos constructores a
TypedData en dart:typed_data. Mejora la inicialización de campos de Dart VM al
recargar.
Released: 2019-12-11
Se agregó soporte para métodos de extensión. Te permite agregar funcionalidad a cualquier tipo, incluso tipos que no controlas con la brevedad y experiencia de autocompletado de llamadas a métodos regulares.
El siguiente ejemplo extiende la clase String de dart:core con un nuevo
método parseInt():
extension ParseNumbers on String {
int parseInt() {
return int.parse(this);
}
}
void main() {
int i = '42'.parseInt();
print(i);
}
Released: 2019-12-11
Los miembros de extensión estáticos son accesibles cuando se importan con un prefijo.
dart:ioReleased: 2019-12-11
Se agregó IOOverrides.serverSocketBind para ayudar a escribir pruebas que deseen
simular ServerSocket.bind.
2.6
Released: 2019-11-11
Reduce el uso de memoria de dart2js, mejora la estabilidad ARM64 y actualiza la documentación de FFI.
Released: 2019-11-05
Introduce una vista previa de miembros de extensión estáticos. Cambia la inferencia para
valores Null en contextos FutureOr. Actualiza
dart:ffi con miembros
de extensión estáticos y elimina la gestión de memoria.
Released: 2019-11-05
Se cambió la inferencia al usar valores Null en un contexto FutureOr. Es decir,
las restricciones de las formas similares a Null <: FutureOr<T>
ahora producen Null
como la solución para T.
Por ejemplo, el siguiente código ahora imprime Null. Antes de Dart 2.6, imprimía
dynamic. El closure anónimo () {}
devuelve el tipo Null.
import 'dart:async';
void foo<T>(FutureOr<T> Function() f) { print(T); }
main() { foo(() {}); }
dart:ffiReleased: 2019-11-05
La API ahora hace uso de miembros de extensión estáticos.
dart:ffiReleased: 2019-11-05
Se eliminó la gestión de memoria Pointer.allocate y Pointer.free.
dart:ffiReleased: 2019-11-05
Pointer.offsetBy fue eliminado, usa cast y elementAt en su lugar.
2.5
Released: 2019-09-10
Expande el conjunto de operaciones permitidas en expresiones constantes, incluyendo conversiones, pruebas de tipo y características de colección.
dart:ffiReleased: 2019-09-10
Varios métodos y propiedades en varias bibliotecas principales, que solían
declarar un tipo de retorno de List<int>, fueron actualizados para declarar un tipo de retorno
de Uint8List.
dart:ioReleased: 2019-09-10
Los parámetros posicionales opcionales name y value del constructor de la clase Cookie
ahora son obligatorios.
dart:ioReleased: 2019-09-10
Los setters name y value de la clase Cookie ahora validan que las
cadenas estén hechas del conjunto de caracteres permitido y no sean null.
2.4
Released: 2019-08-07
Corrige una regresión de rendimiento en modo JIT y un fallo potencial del compilador AOT.
Released: 2019-06-27
Agrega TransferableTypedData para comunicación más rápida entre isolates.
Aplica covarianza de variables de tipo usadas en superinterfaces. Permite
async como identificador en funciones asíncronas y generadoras.
Released: 2019-06-27
La covarianza de variables de tipo usadas en superinterfaces ahora se aplica.
Por ejemplo: Antes de esta versión Dart aceptaba, pero ahora rechaza, el siguiente código:
class A<X> {};
class B<X> extends A<void Function(X)> {};
Released: 2019-06-27
Ahora puedes usar async como identificador en funciones asíncronas y generadoras.
dart:isolateReleased: 2019-06-27
Isolate.resolvePackageUri siempre lanzará un UnsupportedError cuando
se compile con dart2js o DDC.
dart:asyncReleased: 2019-06-27
Se corrigió un error en la clase StreamIterator donde await for permitía null
como un stream.
2.3
Released: 2019-06-11
Corrige una vulnerabilidad de seguridad en Process.run en Linux y Android al no
buscar el directorio actual.
Released: 2019-05-21
Corrige un fallo del compilador dart2js al compilar características de UI-como-código dentro de campos.
Released: 2019-05-08
Introduce características de UI-como-código: operador spread (...), colección if
y colección for.
Released: 2019-05-08
Se agregó soporte para el operador spread (... y ...?) en literales
de colección. El operador spread permite desempaquetar los elementos de una lista
en otra. En el siguiente ejemplo, la lista devuelta por
buildMainElements() se desempaqueta en la lista que se pasa al
argumento children:
Widget build(BuildContext context) {
return Column(children: [
Header(),
...buildMainElements(),
Footer(),
]);
}
Released: 2019-05-08
Se agregó soporte para colección if en literales de colección. El operador colección if
permite agregar elementos condicionalmente. El siguiente ejemplo agrega un
elemento FlatButton a menos que la aplicación muestre la última página:
Widget build(BuildContext context) {
return Column(children: [
Text(mainText),
if (page != pages.last)
FlatButton(child: Text('Next')),
]);
}
Released: 2019-05-08
Se agregó soporte para colección for en literales de colección. El operador colección for
permite construir elementos repetidos. El siguiente ejemplo agrega un
elemento HeadingAction para cada sección en sections:
Widget build(BuildContext context) {
return Column(children: [
Text(mainText),
for (var section in sections)
HeadingAction(section.heading),
]);
}
2.2
Released: 2019-02-26
Introduce literales de conjunto usando {}. Renombra el getter klass a classNode
en
la API de AST de Kernel. Actualiza la implementación de Link en Windows para usar enlaces
simbólicos verdaderos.
Released: 2019-02-26
Se agregó soporte para literales de conjunto usando {}.
El siguiente ejemplo crea un conjunto de monedas:
const Set<String> currencies = {'EUR', 'USD', 'JPY'};
package:kernel
Released: 2019-02-26
El getter klass en la clase InstanceConstant en la API de AST de Kernel ha
sido renombrado a classNode para consistencia.
package:kernel
Released: 2019-02-26
Se actualizó la implementación de Link para utilizar enlaces simbólicos verdaderos en lugar de
uniones en Windows.
2.1
Released: 2018-11-15
Corrige un agujero de solidez en dart:mirrors y agrega un StateError al agregar
a un IOSink cerrado.
dart:ioReleased: 2018-11-15
Se corrigió un agujero de solidez al usar dart:mirrors para invocar reflexivamente un
método de manera incorrecta que viola sus tipos estáticos.
Released: 2018-11-15
Introduce conversión de int a double, nueva sintaxis de mixin y varias
verificaciones de errores estáticos.
Released: 2018-11-15
Se agregó soporte para conversión de int a double, permitiendo a los desarrolladores establecer
valores double usando literales enteros. Esta característica eliminó la molestia
de verse obligado a usar un literal double (por ejemplo,
4.0) cuando el
valor era un entero en concepto.
En el siguiente código Flutter, horizontal y vertical tienen tipo
double:
padding: const EdgeInsets.symmetric(
horizontal: 4,
vertical: 8,
)
Released: 2018-11-15
Una serie de errores estáticos que deberían haber sido detectados y reportados no eran admitidos en 2.0.0. Estos se reportan ahora, lo que significa que el código incorrecto existente podría mostrar nuevos errores:
- Los mixins deben anular correctamente sus superclases.
- Los argumentos de tipo implícitos en cláusulas extends deben satisfacer los límites de clase.
- Los miembros de instancia deben sombrear prefijos.
-
Las invocaciones de constructor deben usar sintaxis válida, incluso con
newopcional. - Los argumentos de tipo a typedefs genéricos deben satisfacer sus límites.
- Las clases no pueden implementar FutureOr.
- Los métodos abstractos no pueden anular de manera no sólida un método concreto.
- Los constructores constantes no pueden redirigir a constructores no constantes.
- No se permiten setters con el mismo nombre que la clase envolvente.
dart2jsReleased: 2018-11-15
Las claves duplicadas en un mapa const no están permitidas y producen un error de tiempo de compilación.
2.0
Released: 2018-08-07
Introduce un sistema de tipo estático sólido (anteriormente modo fuerte). Hace que la palabra clave
new sea opcional y const opcional en contextos const. Cambia las funciones
async
para que se ejecuten sincrónicamente hasta el primer await. Renombra constantes de bibliotecas
principales a lowerCamelCase.
Released: 2018-02-22
Se reemplazó el sistema de tipo estático opcional no sólido con un sistema de tipo estático sólido usando inferencia de tipo y verificaciones en tiempo de ejecución, anteriormente llamado modo fuerte.
Released: 2018-02-22
Las funciones marcadas async ahora se ejecutan sincrónicamente hasta la primera
declaración await.
Released: 2018-02-22
Se renombraron constantes en las bibliotecas principales de SCREAMING_CAPS a
lowerCamelCase.
Released: 2018-02-22
Se implementó un nuevo sistema de tipo sólido. Antes de Dart 2.0, los tipos no eran completamente sólidos, y Dart dependía mucho de la verificación de tipo en tiempo de ejecución. El código Dart 1.x tenía que ser migrado a Dart 2.
Se agregaron muchos métodos nuevos a clases de bibliotecas principales que necesitarán ser implementados si implementas las interfaces de estas clases.
Released: 2018-02-22
dart:isolate y dart:mirrors ya no son admitidos cuando se usa Dart
para la web.
Released: 2018-02-22
Se reemplazó el sistema de compilación basado en transformadores de pub con un nuevo sistema de compilación.
Tipo
Área
Versión
3.x
2.x
A menos que se indique lo contrario, la documentación en este sitio refleja Dart 3.12.2. Página actualizada por última vez el 2026-05-15. Ver fuente oreportar un problema.