Se ha lanzado TypeScript 4.2 Beta.
Como obtener
Obtenga a través de NuGet o use el siguiente comando npm:
npm install mecanografiado @ beta
También se puede obtener en el editor de las siguientes formas:
- Descargue la versión para Visual Studio 2019/2017
- Descargar para la versión de Visual Studio Code y Sublime Text
A continuación, se presentan brevemente las nuevas funciones de TypeScript 4.2.
- Los elementos de descanso del tipo primitivo se pueden colocar en cualquier lugar de la tupla
En versiones anteriores, TypeScript solo permitía que el elemento rest estuviera en la última posición del tipo de tupla, pero ahora el elemento rest puede aparecer en cualquier lugar de la tupla, la única restricción es siempre que no haya otros elementos opcionales o elementos de descanso detrás. . En otras palabras, solo hay un elemento rest por tupla y no hay elementos opcionales después del elemento rest.
let foo: [...string[], number];
foo = [123];
foo = ["hello", 123];
foo = ["hello!", "hello!", "hello!", 123];
let bar: [boolean, ...string[], boolean];
bar = [true, false];
bar = [true, "some text", false];
bar = [true, "some", "separated", "text", false];
- Conserva los alias de tipo de forma más inteligente
- La expresión literal de plantilla ya tiene un tipo de literal de plantilla
TypeScript 4.1 introdujo un nuevo tipo: tipos de literales de plantilla. Este tipo puede modelar patrones específicos de cadenas.
type GreetingStart = "hello" | "hi" | "sup";
declare function greet(str: `${GreetingStart} ${string}`): void;
// Works.
greet("hello world!");
// Works.
greet("hi everybody!");
// Error!
// Doesn't work with any of the patterns:
// `hello ${string}` | `hi ${string}` | `sup ${string}`
greet("hallo yes hi sup");
Pero en 4.1, hay algunas incoherencias extrañas entre los tipos de cadena de plantilla y las expresiones de cadena de plantilla. Esto se debe a que la expresión de cadena de plantilla no es compatible con el nuevo tipo de cadena de plantilla.
Entonces, en TypeScript 4.2, las expresiones de cadena de plantilla ahora siempre comienzan con un tipo de literal de plantilla.
in
Realice controles más estrictos para los operadores- Relajar las reglas entre atributos opcionales y firmas de índice de cadena
- Declarar funciones de accesibilidad que faltan