TypeScript 5.1 lanzado oficialmente

TypeScript 5.1 ha sido lanzado oficialmente .

cambios importantes

código antiguo

function foo() {
    // no return
}

// x = undefined
let x = foo();
//  fine - we inferred that 'f1' returns 'void'
function f1() {
    // no returns
}

//  fine - 'void' doesn't need a return statement
function f2(): void {
    // no returns
}

//  fine - 'any' doesn't need a return statement
function f3(): any {
    // no returns
}

//  error!
// A function whose declared type is neither 'void' nor 'any' must return a value.
function f4(): undefined {
    // no returns
}

nuevo código

//  Works in TypeScript 5.1!
function f4(): undefined {
    // no returns
}

//  Works in TypeScript 5.1!
takesFunction((): undefined => {
    // no returns
});
//  Works in TypeScript 5.1!
takesFunction(function f() {
    //                 ^ return type is undefined

    // no returns
});

//  Works in TypeScript 5.1!
takesFunction(function f() {
    //                 ^ return type is undefined

    return;
});

TypeScript 5.1 elimina la restricción de que el tipo de retorno de un descriptor de acceso Get debe ser asignable a su tipo de descriptor de acceso Set.

TypeScript ahora admite nombres de propiedad con espacio de nombres cuando se usa JSX.

import * as React from "react";

// Both of these are equivalent:
const x = <Foo a:b="hello" />;
const y = <Foo a : b="hello" />;

interface FooProps {
    "a:b": string;
}

function Foo(props: FooProps) {
    return <div>{props["a:b"]}</div>;
}
// In some library's code or in an augmentation of that library:
namespace JSX {
    interface IntrinsicElements {
        ["a:b"]: { prop: string };
    }
}

// In our code:
let x = <a:b prop="hello!" />;

TypeScript 5.1 admite la finalización de fragmentos de código cuando se ingresan etiquetas @param en archivos TypeScript y JavaScript, lo que ayuda a los desarrolladores a generar rápidamente la información de comentarios correspondiente al escribir documentos de código o agregar tipos JSDoc en JavaScript.

Uno de los puntos débiles del uso de JSX por parte de TypeScript es su requisito para el tipo de etiqueta de cada elemento JSX. TypeScript 5.1 permite que las bibliotecas JSX describan con mayor precisión qué componentes JSX pueden devolver.

Para muchos, esto significa usar componentes de servidor asíncronos en React.

otros cambios

Cambios desde las versiones RC y Beta

Desde la versión Beta, el equipo de desarrollo ha corregido initalgunos comportamientos de los ganchos en los decoradores y se han ajustado los comportamientos propuestos por la comunidad. También se isolatedModulesrealizó un cambio en el comportamiento de emisión para garantizar que los archivos de script no se reescriban como módulos.

Esto también significa que transpileModuleel uso de la API también garantizará que el archivo de secuencia de comandos no se interprete como un módulo, ya que se supone que se utiliza isolatedModules.

Desde el lanzamiento de RC, el equipo de desarrollo ha iterado ligeramente en la refactorización integrada para mover declaraciones a archivos existentes.

Vea el anuncio de lanzamiento para más detalles .

Supongo que te gusta

Origin www.oschina.net/news/243564/typescript-5-1-released
Recomendado
Clasificación