TypeScript 4.7 ahora se lanza oficialmente.
Descripción general de las nuevas características
- Compatibilidad con el módulo ECMAScript en Node.js
- Control de detección de módulos
- Análisis de flujo de control de acceso a elementos entre paréntesis
- Razonamiento funcional mejorado en objetos y métodos.
- expresión instanciada
infer
Restricciones para variables de tipoextends
- Anotaciones de variación opcionales para parámetros de tipo
- Personalización de resolución con moduleSuffixes
resolution-mode
- ir a la definición de origen
- Importación de organizaciones con reconocimiento de grupos
- Fragmento de método de objeto completo
- Cambios importantes
¿Qué hay de nuevo desde la versión beta?
El equipo de desarrollo anunció el objetivo estable para el soporte de Node ESM en beta , node12
sin embargo, dado que Node.js 12 ya no está bajo mantenimiento, es hora de seguir adelante node16
. Esto debería proporcionar características más nuevas del módulo ES de Node.js (como avances de patrones) , mientras que TypeScript se establece de forma predeterminada en un objetivo más alto que admita la espera de nivel superior.
Desde la versión beta, la sintaxis aún funciona para las directivas; sin embargo, los funcionarios han recibido algunos comentarios al respecto y quieren reconsiderar los requisitos y el diseño de la función. Solo disponible experimentalmente en la versión nocturna de TypeScript .resolution-mode
/// <reference types="..." />
import type
resolution-mode
import type
Después de la versión beta, el equipo de desarrollo se dio cuenta de los problemas de compatibilidad de la API con los #private
campos . typeof
Por lo tanto, la función no aparecerá en TypeScript 4.7.
Esta versión también incluye un nuevo comando del editor de vista previa para ir a las definiciones de origen. Útil en los casos en que el comando normal Ir a definición lo lleva a un archivo de declaración en lugar de la fuente real de JavaScript o TypeScript.
También ha habido algunos cambios importantes desde la versión beta , incluidas strictNullChecks
las reglas sobre restricciones de parámetros de tipo más estrictas y se han eliminado el análisis de la función de flecha. Pero algunos cambios aparentemente inocuos han introducido reglas más estrictas en torno a los genéricos utilizados en JSX...spreads y template strings.
Ir a Definición de fuente
TypeScript 4.7 incluye soporte para un nuevo comando de editor experimental llamado Ir a definición de origen. Es similar a Ir a definición, pero nunca devuelve el resultado en el archivo de declaración. En su lugar, intentará encontrar el archivo de implementación correspondiente (como un archivo .js o .ts) y encontrará la definición allí, incluso si estos archivos suelen estar ocultos.
Esta característica suele ser útil cuando necesita ver la implementación de una función importada de una biblioteca, en lugar de la declaración de tipo en un archivo.d.ts
Finalizaciones de fragmentos de método de objeto
TypeScript ahora proporciona finalización de fragmentos para métodos de objetos. Al completar miembros en un objeto, TypeScript proporcionará una entrada de finalización típica para el nombre del método y una entrada de finalización separada para la definición completa del método.
Se pueden encontrar más detalles en el anuncio de lanzamiento .