TypeScript 5.4, una actualización planificada del variante de JavaScript fuertemente tipada de Microsoft, ha alcanzado la disponibilidad beta. Las nuevas capacidades incluyen una reducción conservada dentro de los cierres de funciones creados después de la última asignación y un tipo NoInfer para bloquear inferencias a tipos válidos pero no deseados.
Lanzado el 29 de enero, se puede acceder a TypeScript 5.4 a través de NuGet o MNP. En NPM, use el siguiente comando:
npm install -D typescript@beta
TypeScript 5.4 hace que la reducción sea más inteligente. Al detallar la mejora, Microsoft dijo que un problema común en TypeScript era que los tipos restringidos no siempre se conservaban dentro de los cierres de funciones. En TypeScript 5.4, cuando los parámetros y let
Las variables se utilizan en funciones no elevadas, el verificador de tipos buscará un último punto de asignación. Si se encuentra uno, TypeScript puede limitarlo desde fuera de la función que lo contiene.
TypeScript 5.4 también introduce una NoInfer<T>
tipo de utilidad. Rodeando un tipo en NoInfer<…>
da una señal a TypeScript para que coincida con los tipos internos y encuentre candidatos para la inferencia de tipos. El tipo de utilidad aborda un problema en el que TypeScript puede inferir argumentos de tipo a partir de lo que se pasa. Pero no siempre está claro cuál es el mejor tipo para inferir, lo que lleva a TypeScript a rechazar llamadas válidas y cometer otros errores.
Otras mejoras en TypeScript 5.4:
- Se agregan declaraciones para el nuevo JavaScript.
groupBy
yMap.groupBy
métodos estáticos.Object.groupBy
toma un iterable y una función que decide en qué grupo se debe colocar cada elemento. La función debe crear una clave para cada grupo distinto, yObject.groupBy
usa esa clave para crear un objeto donde cada clave se asigna a una matriz que contiene el elemento original.Map.groupBy
es similar, pero produce un mapa en lugar de un objeto simple. - Se ha agregado soporte para
require( )
llama--moduleResolution bundler
y--module preserve
. - Los atributos y aserciones de importación ahora se comparan con el global
ImportAttributes
tipo. Esto significa que los tiempos de ejecución ahora pueden describir con mayor precisión los atributos de importación. - Una solución rápida le permite agregar un nuevo parámetro a funciones llamadas con demasiados argumentos.
- TypeScript ahora reduce las intersecciones con variables de tipo y primitivas de manera más agresiva, dependiendo de cómo se superponga la restricción de la variable de tipo con estas primitivas.
- Se han agregado obsolescencias de Mecanografiado 5.0 como
target: ES3
código,NoImplcitUseStrict
,charset
yout
. TypeScript 5.4 probablemente será la última versión en la que la lista de obsolescencias continúe funcionando normalmente.
Copyright © 2024 IDG Communications, Inc.