El desarrollador de la comunidad proporciona un nuevo campo de juegos TypeScript 3.6
Microsoft ha enviado TypeScript 3.6, con un nuevo "patio de recreo" derivado de un desarrollador de código abierto independiente que sirve como ejemplo de colaboración comunitaria para mejorar el software de clase mundial.
"¡El patio de juegos de TypeScript ha recibido una actualización muy necesaria con una nueva y práctica funcionalidad!" dijo el gerente de programa de Daniel Rosenwasser en un anuncio posterior . "El nuevo parque infantil es en gran parte un tenedor de Artem Tyurin 's parque infantil mecanografiado que los miembros de la comunidad han estado utilizando cada vez más. Se lo debemos Artem un gran agradecimiento por su ayuda aquí!"
De hecho, el "mejor patio de juegos TypeScript" de Tyurin cuenta con 197 estrellas en GitHub.
Las nuevas opciones para el campo de juegos TypeScript enumeradas por Rosenwasser incluyen:
La opción de destino (que permite a los usuarios cambiar de es5 a es3, es2015, esnext, etc.)
Todas las banderas de rigurosidad (incluidas las estrictas)
Soporte para archivos JavaScript simples (usando allowJS y opcionalmente checkJs)
Se planean mejoras adicionales que incluyen soporte para JSX (utilizado en la programación de React) y más. Sin embargo, por ahora, los desarrolladores disfrutarán de la capacidad de persistir en las opciones que establecen al enviar enlaces de muestra de juegos para que otros desarrolladores que ahora no tengan que preocuparse de configurar manualmente esas opciones.
Junto con el nuevo parque infantil, Rosenwasser detalló mejoras en el lenguaje y el compilador y nuevas características del editor. Aquí hay un breve resumen:
Distribución de matriz más precisa : "En los objetivos anteriores a ES2015, las emisiones más fieles para construcciones como for / of loops y spreads de matriz pueden ser un poco pesadas. Por esta razón, TypeScript utiliza una emisión más simple por defecto que solo admite tipos de matriz, y admite iterar en otros tipos utilizando el indicador --downlevelIteration. Bajo este indicador, el código emitido es más preciso, pero es mucho más grande ".
Mejora de UX en torno a las promesas : "Las promesas son una de las formas más comunes de trabajar con datos asincrónicos hoy en día. Desafortunadamente, el uso de una API orientada a promesas puede ser confuso para los usuarios. TypeScript 3.6 introduce algunas mejoras para cuando las promesas se manejan mal".
Mejor soporte Unicode para identificadores : "TypeScript 3.6 contiene un mejor soporte para caracteres Unicode en los identificadores cuando se emite a ES2015 y objetivos posteriores".
Soporte de import.meta en SystemJS : "TypeScript 3.6 admite la transformación de import.meta a context.meta cuando el objetivo del módulo está configurado en el sistema".
los accesos get y set están permitidos en contextos ambientales : "En versiones anteriores de TypeScript, el lenguaje no permitía obtener y establecer accesores en contextos ambientales (como en las clases declare-d o en los archivos .d.ts en general). la razón era que los accesores no eran distintos de las propiedades en cuanto a escribir y leer estas propiedades; sin embargo, debido a que la propuesta de campos de clase de ECMAScript puede tener un comportamiento diferente al de las versiones existentes de TypeScript , nos dimos cuenta de que necesitábamos una forma de comunicar este comportamiento diferente a proporcionar errores apropiados en subclases ".
Las clases y funciones ambientales pueden fusionarse : "En versiones anteriores de TypeScript, fue un error fusionar clases y funciones bajo cualquier circunstancia. Ahora, las clases y funciones ambientales (clases / funciones con el modificador de declaración, o en archivos .d.ts) puede fusionarse ".
API para admitir --build y --incremental : "TypeScript 3.0 introdujo la compatibilidad para hacer referencia a otros proyectos y construirlos de forma incremental utilizando el indicador --build. Además, TypeScript 3.4 introdujo el indicador --incremental para guardar información sobre compilaciones anteriores para reconstruir solo ciertos archivos. Estos indicadores fueron increíblemente útiles para estructurar proyectos de manera más flexible y acelerar las compilaciones. Desafortunadamente, el uso de estos indicadores no funcionó con herramientas de compilación de terceros como Gulp y Webpack. TypeScript 3.6 ahora expone dos conjuntos de API para operar en referencias de proyectos y construcción de programas incrementales ".
Importaciones automáticas más inteligentes : "JavaScript tiene muchas sintaxis o convenciones de módulos diferentes: la que está en el estándar ECMAScript, la que ya admite Node (CommonJS), AMD, System.js y más. En su mayor parte, TypeScript sería predeterminado a la importación automática usando la sintaxis del módulo ECMAScript, que a menudo era inapropiado en ciertos proyectos de TypeScript con diferentes configuraciones de compilador, o en proyectos de Nodo con JavaScript simple y requieren llamadas. TypeScript 3.6 ahora es un poco más inteligente al mirar sus importaciones existentes antes de decidir cómo para importar automáticamente otros módulos. Puede ver más detalles en la solicitud de extracción original aquí ".
Para obtener más información, los desarrolladores interesados pueden consultar los cambios de última hora y lo que sigue.
La hoja de ruta de seis meses (julio-diciembre de 2019) muestra lo que está disponible, afectando el diseño del lenguaje y la innovación, las herramientas de productividad del desarrollador y la integración, educación y experiencia de usuario, inversión comunitaria e ingeniería interna.
Sin embargo, a pesar de la creciente demanda de los desarrolladores, una solicitud para " Investigar mensajes de error en haiku o pentámetro yámbico " no está en la hoja de ruta de seis meses. Sin embargo, todavía está en los planes a largo plazo bajo la categoría "Futuro".
"¡El patio de juegos de TypeScript ha recibido una actualización muy necesaria con una nueva y práctica funcionalidad!" dijo el gerente de programa de Daniel Rosenwasser en un anuncio posterior . "El nuevo parque infantil es en gran parte un tenedor de Artem Tyurin 's parque infantil mecanografiado que los miembros de la comunidad han estado utilizando cada vez más. Se lo debemos Artem un gran agradecimiento por su ayuda aquí!"
De hecho, el "mejor patio de juegos TypeScript" de Tyurin cuenta con 197 estrellas en GitHub.
Las nuevas opciones para el campo de juegos TypeScript enumeradas por Rosenwasser incluyen:
La opción de destino (que permite a los usuarios cambiar de es5 a es3, es2015, esnext, etc.)
Todas las banderas de rigurosidad (incluidas las estrictas)
Soporte para archivos JavaScript simples (usando allowJS y opcionalmente checkJs)
Se planean mejoras adicionales que incluyen soporte para JSX (utilizado en la programación de React) y más. Sin embargo, por ahora, los desarrolladores disfrutarán de la capacidad de persistir en las opciones que establecen al enviar enlaces de muestra de juegos para que otros desarrolladores que ahora no tengan que preocuparse de configurar manualmente esas opciones.
Junto con el nuevo parque infantil, Rosenwasser detalló mejoras en el lenguaje y el compilador y nuevas características del editor. Aquí hay un breve resumen:
Lenguaje y compilador
Generadores más estrictos : "TypeScript 3.6 introduce una verificación más estricta para los iteradores y las funciones del generador. En versiones anteriores, los usuarios de generadores no tenían forma de diferenciar si un generador producía o devolvía un valor".Distribución de matriz más precisa : "En los objetivos anteriores a ES2015, las emisiones más fieles para construcciones como for / of loops y spreads de matriz pueden ser un poco pesadas. Por esta razón, TypeScript utiliza una emisión más simple por defecto que solo admite tipos de matriz, y admite iterar en otros tipos utilizando el indicador --downlevelIteration. Bajo este indicador, el código emitido es más preciso, pero es mucho más grande ".
Mejora de UX en torno a las promesas : "Las promesas son una de las formas más comunes de trabajar con datos asincrónicos hoy en día. Desafortunadamente, el uso de una API orientada a promesas puede ser confuso para los usuarios. TypeScript 3.6 introduce algunas mejoras para cuando las promesas se manejan mal".
Mejor soporte Unicode para identificadores : "TypeScript 3.6 contiene un mejor soporte para caracteres Unicode en los identificadores cuando se emite a ES2015 y objetivos posteriores".
Soporte de import.meta en SystemJS : "TypeScript 3.6 admite la transformación de import.meta a context.meta cuando el objetivo del módulo está configurado en el sistema".
los accesos get y set están permitidos en contextos ambientales : "En versiones anteriores de TypeScript, el lenguaje no permitía obtener y establecer accesores en contextos ambientales (como en las clases declare-d o en los archivos .d.ts en general). la razón era que los accesores no eran distintos de las propiedades en cuanto a escribir y leer estas propiedades; sin embargo, debido a que la propuesta de campos de clase de ECMAScript puede tener un comportamiento diferente al de las versiones existentes de TypeScript , nos dimos cuenta de que necesitábamos una forma de comunicar este comportamiento diferente a proporcionar errores apropiados en subclases ".
Las clases y funciones ambientales pueden fusionarse : "En versiones anteriores de TypeScript, fue un error fusionar clases y funciones bajo cualquier circunstancia. Ahora, las clases y funciones ambientales (clases / funciones con el modificador de declaración, o en archivos .d.ts) puede fusionarse ".
API para admitir --build y --incremental : "TypeScript 3.0 introdujo la compatibilidad para hacer referencia a otros proyectos y construirlos de forma incremental utilizando el indicador --build. Además, TypeScript 3.4 introdujo el indicador --incremental para guardar información sobre compilaciones anteriores para reconstruir solo ciertos archivos. Estos indicadores fueron increíblemente útiles para estructurar proyectos de manera más flexible y acelerar las compilaciones. Desafortunadamente, el uso de estos indicadores no funcionó con herramientas de compilación de terceros como Gulp y Webpack. TypeScript 3.6 ahora expone dos conjuntos de API para operar en referencias de proyectos y construcción de programas incrementales ".
Características del editor
Ediciones de código con reconocimiento de punto y coma : "Los editores como Visual Studio y Visual Studio Code pueden aplicar automáticamente soluciones rápidas, refactorizaciones y otras transformaciones, como importar automáticamente valores de otros módulos. Estas transformaciones funcionan con TypeScript, y las versiones anteriores de TypeScript agregaron punto y coma incondicionalmente a al final de cada declaración; desafortunadamente, esto no estaba de acuerdo con las pautas de estilo de muchos usuarios, y muchos usuarios estaban disgustados con el editor insertando punto y coma. TypeScript ahora es lo suficientemente inteligente como para detectar si su archivo usa punto y coma al aplicar este tipo de ediciones. Si su archivo generalmente carece de punto y coma, TypeScript no agregará uno ".Importaciones automáticas más inteligentes : "JavaScript tiene muchas sintaxis o convenciones de módulos diferentes: la que está en el estándar ECMAScript, la que ya admite Node (CommonJS), AMD, System.js y más. En su mayor parte, TypeScript sería predeterminado a la importación automática usando la sintaxis del módulo ECMAScript, que a menudo era inapropiado en ciertos proyectos de TypeScript con diferentes configuraciones de compilador, o en proyectos de Nodo con JavaScript simple y requieren llamadas. TypeScript 3.6 ahora es un poco más inteligente al mirar sus importaciones existentes antes de decidir cómo para importar automáticamente otros módulos. Puede ver más detalles en la solicitud de extracción original aquí ".
Para obtener más información, los desarrolladores interesados pueden consultar los cambios de última hora y lo que sigue.
La hoja de ruta de seis meses (julio-diciembre de 2019) muestra lo que está disponible, afectando el diseño del lenguaje y la innovación, las herramientas de productividad del desarrollador y la integración, educación y experiencia de usuario, inversión comunitaria e ingeniería interna.
Sin embargo, a pesar de la creciente demanda de los desarrolladores, una solicitud para " Investigar mensajes de error en haiku o pentámetro yámbico " no está en la hoja de ruta de seis meses. Sin embargo, todavía está en los planes a largo plazo bajo la categoría "Futuro".