TypeScript, o superset JavaScript open source da Microsoft, chegou na versão 1.8 beta, trazendo várias funcionalidades novas para a linguagem e melhorias em ferramentas.
Possivelmente a funcionalidade mais impactante do TypeScript 1.8 seja o compilador que pode agora consumir arquivos JavaScript além de TypeScript. Esta funcionalidade, habilitada pela flag de linhas de comando --allowJS, torna transparente o uso de código JavaScript dentro de um projeto TypeScript, sem que o desenvolvedor seja forçado a converter todos arquivos de uma vez, uma tarefa que pode evitar erros de compilação e que agora podem ser realizadas da maneira que o desenvolvedor preferir. Além disso, a possibilidade de compilar código JavaScript significa que qualquer biblioteca de terceiros pode ser incluída na compilação do TypeScript, logo nenhum pacote externo é requerido para entregá-los juntos.
Componentes funcionais Stateless, uma ideia que nasceu no projeto React, também está no TypeScript 1.8 beta. O principal apelo reside no fato de serem componentes leves que não tem estado e podem ser facilmente compostos. Segue um exemplo de um componente funcional Stateless em TypeScript:
let SimpleGreeter = ({name = ‘world‘}) =>Hello, {name};
Que é equivalente ao seguinte:
interface GreeterProps { name: string; } class Greeter extends React.Component{ render() { return Hello, {this.props.name}; } }
Os componentes funcionais Stateless requerem a última versão do react.d.ts.
O TypeScript 1.8 beta também adicionou suporte para o polimorfismo recursivo limitado, que se resume a possibilidade de uma restrição de tipo de parâmetro fazer referência a parâmetros de tipo da lista de parâmetros do mesmo tipo. No seguinte pedaço de código é possível ver o tipo T restrito por outro tipo na mesma lista de parâmetros, U agora é permitido no TypeScript:
function assign(target: T, source: U): T { for (let id in source) { target[id] = source[id]; } return target; }
Outra melhoria bem-vinda ao compilador do TypeScript é o controle de análises dos fluxos, que pode ajudar a capturar erros comuns como código inacessível, labels não usadas, retornos implícitos, entre outros.
O TypeScript 1.8 beta inclui várias outras novas funcionalidades, tais como gerenciamento simplificado de tipos props em React, tipos de string literais, inferência de tipos melhorada para tipos union/intersection, etc. É possível encontrar mais no What's New oficial.
Como mencionado, o TypeScript é estritamente um super conjunto de JavaScript, a que se acrescenta tipagem estática opcional e suporte para programação orientada a objetos com base em classe. O TypeScript 1.8 beta está disponível para o Visual Studio 2015, NuGet, e npm.