TypeScript 3.5 corrige el error de comprobación de tipos "insoportablemente lento"

TypeScript 3.5, la última versión del popular superconjunto de JavaScript de Microsoft, ya está disponible en una versión de producción. La actualización agrega optimizaciones para la verificación de tipos, que aborda una regresión de velocidad grave introducida con TypeScript 3.4.

Con TypeScript 3.5, el equipo de desarrollo de TypeScript de Microsoft se centró en optimizar las rutas de código y en eliminar ciertas funciones para hacer que TypeScript sea más rápido. Los tiempos de compilación han caído en comparación con TypeScript 3.4; la finalización del código y otras operaciones del editor también deberían ser "más rápidas", anotaron los desarrolladores de TypeScript.

Al realizar estas optimizaciones, el equipo de TypeScript trató de reparar una regresión introducida en TypeScript 3.4 que podría llevar a un trabajo mucho mayor para el comprobador de tipos y aumentar los tiempos de verificación de tipos. La regresión fue grave porque, además de llevar a tiempos de construcción más largos, las operaciones de edición para los usuarios de TypeScript y JavaScript se volvieron "insoportablemente lentas". Los desarrolladores más afectados fueron los que usaron la biblioteca de componentes de estilo.

Otras mejoras en TypeScript 3.5 incluyen:

  • Optimizaciones de caché impactando el incremental Opción de compilador que reduce el tiempo de reconstrucción.
  • UNA lib.d.ts archivo de declaración para proporcionar una Omitir tipo de ayudante El compilador utilizará este tipo para expresar los tipos creados a través de la desestructuración de objetos en genéricos.
  • Mejora el exceso de cheques de propiedad en los tipos de unión. El control de exceso de propiedad está destinado a encontrar errores tipográficos cuando un tipo no espera una propiedad específica. En TypeScript 3.5, el verificador de tipos verifica que todas las propiedades proporcionadas pertenecen a algún miembro de la unión y tienen el tipo adecuado.
  • Al asignar tipos con propiedades discriminantes, el lenguaje descompondrá los tipos en una unión de cada posible habitante. mecanografiado tipo. Esto proporciona una verificación de tipos más inteligente.
  • Referencia de declaraciones globales UMD (Universal Module Definition) utilizando un allowUmdGlobalAccess bandera.
  • Inferencia de tipo de orden superior a partir de constructores genéricos.
  • Una función de selección inteligente que proporciona una API para que los editores amplíen las selecciones de texto de manera sintáctica, con el editor conociendo las construcciones a las que se debe expandir. Los editores no tienen que usar heurísticas como la comparación de llaves. Los desarrolladores ahora pueden esperar que la expansión de la selección en editores como Visual Studio Code simplemente funcione.
  • Una nueva refactorización extrae tipos a alias locales.
  • TypeScript 3.5 contiene algunos cambios de ruptura, como los parámetros de tipo genérico restringidos a desconocido.

Puede descargar la versión candidata de TypeScript 3.5 desde NuGet o usando el siguiente comando NPM:

npm install -g mecanografiado

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *